AT_pakencamp_2018_day2_e クリスマスツリー (Tree Coloring)

Description

[problemUrl]: https://atcoder.jp/contests/pakencamp-2018-day2/tasks/pakencamp_2018_day2_e 今日はクリスマス・イブである。PAKEN 君は、平成最後のクリスマスに向けて、以下のようなデコレーションを作りました。 - デコレーションは、「電球」と「棒」で構成される。デコレーションは、以下のようにして作られる。 - 電球 $ (a,\ b) $ $ (0\ \leq\ a\ \leq\ D,\ -a\ \leq\ b\ \leq\ a) $ を満たす整数の組) を作る。$ a $ を「深さ」と呼び、$ b $ を「横座標」と呼ぶ。 - 電球 $ (0,\ 0) $ と $ (1,\ -1) $ を、そして電球 $ (0,\ 0) $ と $ (1,\ 1) $ を、直接棒で結ぶ。 - 同じ深さで横座標が $ 1 $ しか違わない電球同士を、直接棒で結ぶ。 - 電球 $ (a,\ -(a-1)) $ と $ (a+1,\ -(a+1)) $ を、そして電球 $ (a,\ a-1) $ と $ (a+1,\ a+1) $ を、直接棒で結ぶ。 例えば、$ D\ =\ 1,\ 2,\ 3 $ のとき、グラフは以下の図のようになります。 ![ ](https://cdn.luogu.com.cn/upload/vjudge_pic/AT_pakencamp_2018_day2_e/a04ddeeff335fde3ac11fad4d0b2fa14bf2ba610.png) どうやらクリスマスツリーみたいな感じです。 PAKEN 君は、色 $ 1 $ から $ X $ までの $ X $ 個の色を使って、全ての電球に色を付けたいです。ただし、棒で直接結ばれた電球は同じ色であってはいけません。 色の付け方は何通りあるか、$ 1\ 000\ 000\ 007 $ で割った余りを求めてください。

Input Format

入力は以下の形式で標準入力から与えられます。 > $ D $ $ X $

Output Format

色の付け方は何通りあるか、$ 1\ 000\ 000\ 007 $ で割った余りを一行に出力してください。

Explanation/Hint

### 制約 - $ D $ は $ 1 $ 以上 $ 10\ 000\ 000 $ 以下の整数 - $ X $ は $ 1 $ 以上 $ 1\ 000\ 000\ 000 $ 以下の整数 ### 小課題 小課題 $ 1 $ \[$ 2 $ 点\] 入力は以下の条件を満たす。 - $ D\ =\ 1 $ - $ X\ \leq\ 4 $ 小課題 $ 2 $ \[$ 12 $ 点\] 入力は以下の条件を満たす。 - $ D\ \leq\ 2 $ - $ X\ \leq\ 6 $ 小課題 $ 3 $ \[$ 21 $ 点\] 入力は以下の条件を満たす。 - $ D\ \leq\ 4 $ - $ X\ \leq\ 7 $ 小課題 $ 4 $ \[$ 31 $ 点\] 入力は以下の条件を満たす。 - $ D\ \leq\ 50 $ - $ X\ \leq\ 25 $ 小課題 $ 5 $ \[$ 18 $ 点\] - $ D\ \leq\ 50 $ を満たす。 小課題 $ 6 $ \[$ 11 $ 点\] - $ D\ \leq\ 100\ 000 $ を満たす。 小課題 $ 7 $ \[$ 5 $ 点\] - 追加の制約はない。 ### Sample Explanation 1 以下の $ 2 $ 通りの塗り方が存在します。 !\[ \](https://img.atcoder.jp/pakencamp-2018-day2/83bf7fd0dc8341157661089dece0219b.png) ### Sample Explanation 2 以下の $ 18 $ 通りの塗り方が存在します。 !\[ \](https://img.atcoder.jp/pakencamp-2018-day2/9cb66e828bc68ac034393530654430fe.png) この入力は、小課題 $ 1 $ の制約を満たします。 ### Sample Explanation 3 この入力は、小課題 $ 2 $ の制約は満たしませんが、小課題 $ 3 $ の制約を満たします。