#include <bits/stdc++.h>
using namespace std;
char g[3010][3010];
long long dp[2][3010][3010];
int main() {
  int n, m;
  scanf("%d %d", &n, &m);
  for (int i = 1; i < n + 1; i++) scanf("%s", g[i] + 1);
  if (g[1][2] == '.') dp[0][1][2] = 1;
  if (g[2][1] == '.') dp[1][2][1] = 1;
  for (int i = 1; i < n + 1; i++)
    for (int j = 1; j < m + 1; j++) {
      if (g[i][j] == '.') {
        for (int z = 0; z < 2; z++)
          dp[z][i][j] =
              (dp[z][i][j] + dp[z][i - 1][j] + dp[z][i][j - 1]) % 1000000007LL;
      }
    }
  printf("%lld\n", (((dp[0][n - 1][m] * dp[1][n][m - 1] -
                      dp[0][n][m - 1] * dp[1][n - 1][m]) %
                     1000000007LL) +
                    1000000007LL) %
                       1000000007LL);
  return 0;
}
