atcoder#DPH. Grid 1

Grid 1

配点 : 100100

問題文

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

i,ji, j (1iH1 \leq i \leq H, 1jW1 \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 は整数である。
  • 2H,W10002 \leq H, W \leq 1000
  • ai,ja_{i, j}. または # である。
  • マス (1,1)(1, 1) および (H,W)(H, W) は空マスである。

入力

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

HH WW

a1,1a_{1, 1}\ldotsa1,Wa_{1, W}

::

aH,1a_{H, 1}\ldotsaH,Wa_{H, W}

出力

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

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

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

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

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

5 5
..#..
.....
#...#
.....
..#..
24
20 20
....................
....................
....................
....................
....................
....................
....................
....................
....................
....................
....................
....................
....................
....................
....................
....................
....................
....................
....................
....................
345263555

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