97 #ABC145D. [ABC145D] Knight

[ABC145D] Knight

配点 : 400400

問題文

二次元グリッドの原点 (0,0)(0,0) にチェスのナイトの駒があります。

ナイトの駒はマス (i,j)(i,j) にあるとき (i+1,j+2)(i+1,j+2)(i+2,j+1)(i+2, j+1) のどちらかのマスにのみ動かすことができます。

ナイトの駒をマス (X,Y)(X,Y) まで移動させる方法は何通りありますか?

109+710^9+7 で割った余りを求めてください。

制約

  • 1X1061 \leq X \leq 10^6
  • 1Y1061 \leq Y \leq 10^6
  • 入力中のすべての値は整数である。

入力

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

XX YY

出力

ナイトの駒を (0,0)(0,0) から (X,Y)(X,Y) まで移動させる方法の数を、109+710^9+7 で割った余りを出力せよ。

3 3
2

(0,0)(1,2)(3,3)(0,0) \to (1,2) \to (3,3)(0,0)(2,1)(3,3)(0,0) \to (2,1) \to (3,3)22 通りが考えられます。

2 2
0

(2,2)(2,2) にナイトの駒を移動させることはできません。

999999 999999
151840682

方法の数を 109+710^9+7 で割った余りを出力してください。