#abc183e. [abc183_e]Queen on Grid

[abc183_e]Queen on Grid

Problem Statement

We have a grid with HH horizontal rows and WW vertical columns of squares. Square (i,j)(i,j), which is at the ii-th row from the top and jj-th column from the left, is wall if SijS_{ij} is # and road if SijS_{ij} is ..

There is a queen, the chess piece, at Square (1,1)(1, 1). In one move, it can move any number of squares to the right, downwards, or diagonally to the lower right to a road square without jumping over wall squares.

In how many ways can the queen travel from Square (1,1)(1, 1) to Square (H,W)(H, W)? Find the count modulo (109+7)(10^9+7).

Here, two ways to travel are considered different if and only if there exists ii such that the position of the queen after the ii-th move is different in those two ways.

Constraints

  • 2leqH,Wleq20002 \\leq H,W \\leq 2000
  • SijS_{ij} is # or ..
  • S11S_{11} and SHWS_{HW} are ..

Input

Input is given from Standard Input in the following format:

HH WW S11ldotsS1WS_{11}\\ldots S_{1W} vdots\\vdots SH1ldotsSHWS_{H1}\\ldots S_{HW}

Output

Print the number of ways, modulo (109+7)(10^9+7), in which the queen can travel from Square (1,1)(1, 1) to Square (H,W)(H, W).


Sample Input 1

3 3
...
.#.
...

Sample Output 1

10

There are 1010 ways to travel, as follows:

  • (1,1)to(1,2)to(1,3)to(2,3)to(3,3)(1,1)\\to (1,2)\\to (1,3)\\to (2,3)\\to (3,3)
  • (1,1)to(1,2)to(1,3)to(3,3)(1,1)\\to (1,2)\\to (1,3)\\to (3,3)
  • (1,1)to(1,2)to(2,3)to(3,3)(1,1)\\to (1,2)\\to (2,3)\\to (3,3)
  • (1,1)to(1,3)to(2,3)to(3,3)(1,1)\\to (1,3)\\to (2,3)\\to (3,3)
  • (1,1)to(1,3)to(3,3)(1,1)\\to (1,3)\\to (3,3)
  • (1,1)to(2,1)to(3,1)to(3,2)to(3,3)(1,1)\\to (2,1)\\to (3,1)\\to (3,2)\\to (3,3)
  • (1,1)to(2,1)to(3,1)to(3,3)(1,1)\\to (2,1)\\to (3,1)\\to (3,3)
  • (1,1)to(2,1)to(3,2)to(3,3)(1,1)\\to (2,1)\\to (3,2)\\to (3,3)
  • (1,1)to(3,1)to(3,2)to(3,3)(1,1)\\to (3,1)\\to (3,2)\\to (3,3)
  • (1,1)to(3,1)to(3,3)(1,1)\\to (3,1)\\to (3,3)

Sample Input 2

4 4
...#
....
..#.
....

Sample Output 2

84

From (1,1)(1,1), the queen can move to (1,2)(1,2), (1,3)(1,3), (2,1)(2,1), (2,2)(2,2), (3,1)(3,1), or (4,1)(4,1).

One possible path to (4,4)(4,4) is (1,1)to(3,1)to(3,2)to(4,3)to(4,4)(1,1)\\to (3,1)\\to (3,2)\\to (4,3)\\to (4,4).


Sample Input 3

8 10
..........
..........
..........
..........
..........
..........
..........
..........

Sample Output 3

13701937

Find the count modulo (109+7)(10^9+7).