#dph. [dp_h]Grid 1

[dp_h]Grid 1

問題文

HH 行、横 WW 列のグリッドがあります。 上から ii 行目、左から jj 列目のマスを (i,j)(i, j) で表します。

i,ji, j (1leqileqH1 \\leq i \\leq H, 1leqjleqW1 \\leq j \\leq W) について、マス (i,j)(i, j) の情報が文字 ai,ja_{i, j} によって与えられます。 ai,ja_{i, j}. ならばマス (i,j)(i, j) は空マスであり、ai,ja_{i, j}# ならばマス (i,j)(i, j) は壁のマスです。 マス (1,1)(1, 1) および (H,W)(H, W) は空マスであることが保証されています。

太郎君は、マス (1,1)(1, 1) から出発し、右または下に隣り合う空マスへの移動を繰り返すことで、マス (H,W)(H, W) まで辿り着こうとしています。

マス (1,1)(1, 1) から (H,W)(H, W) までの太郎君の経路は何通りでしょうか? 答えは非常に大きくなりうるので、109+710^9 + 7 で割った余りを求めてください。

制約

  • HH および WW は整数である。
  • 2leqH,Wleq10002 \\leq H, W \\leq 1000
  • ai,ja_{i, j}. または # である。
  • マス (1,1)(1, 1) および (H,W)(H, W) は空マスである。

入力

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

HH WW a1,1a_{1, 1}ldots\\ldotsa1,Wa_{1, W} :: aH,1a_{H, 1}ldots\\ldotsaH,Wa_{H, W}

出力

マス (1,1)(1, 1) から (H,W)(H, W) までの太郎君の経路は何通りか? 109+710^9 + 7 で割った余りを出力せよ。


入力例 1

3 4
...#
.#..
....

出力例 1

3

経路は次図の 33 通りです。


入力例 2

5 2
..
#.
..
.#
..

出力例 2

0

経路が存在しない場合もあります。


入力例 3

5 5
..#..
.....
#...#
.....
..#..

出力例 3

24

入力例 4

20 20
....................
....................
....................
....................
....................
....................
....................
....................
....................
....................
....................
....................
....................
....................
....................
....................
....................
....................
....................
....................

出力例 4

345263555

答えを 109+710^9 + 7 で割った余りを出力することを忘れずに。