057 - Domino Tiling Editorial /

Time Limit: 1 sec / Memory Limit: 1024 MB

配点 : 1000

問題文

K \times N の長方形のマス目を、1 \times 2 または 2 \times 1 の長方形のタイルで完全に敷き詰める方法の数を 1000000007 (=10^9+7) で割った余りを求めてください。ただし、以下の条件を満たす敷き詰め方を正しい敷き詰めであるとします。

  • タイルはマス目からはみ出してはならず、また異なるタイル同士が重なってはならない。
  • 全てのタイルは、マス目のちょうど 2 マスを完全に覆う。

また、回転や裏返しによって一致する敷き詰め方も、異なるものとして数えます。

制約

  • 2 \le K \le 4
  • 5 \le N \le 10^{18}
  • 入力はすべて整数

入力

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

K N

出力

答えを出力してください。

部分点

この問題では、初期得点を 0 点として、以下の条件で得点が加算されます。

  • K=2 を満たすケース全てに正答した場合、 2 点が加算される。
  • K=3 を満たすケース全てに正答した場合、 30 点が加算される。
  • K=4 を満たすケース全てに正答した場合、 400 点が加算される。
  • 全てのケースに正答した場合、 568 点が加算される。
    • これにより、最終的な満点は 1000 点となる。

入力例 1

2 6

出力例 1

13

入力例 2

3 8

出力例 2

153

入力例 3

4 7

出力例 3

781