#include <bits/stdc++.h>
using namespace std;
namespace zzc {
const int maxn = 3005;
const long long mod = 1e9 + 7;
long long f[maxn][maxn], x1, x2, x3, x4;
bool mp[maxn][maxn];
char ch[maxn];
long long n, m;
void work() {
  scanf("%lld%lld", &n, &m);
  for (int i = 1; i <= n; i++) {
    scanf("%s", ch + 1);
    for (int j = 1; j <= m; j++) {
      if (ch[j] == '#') mp[i][j] = true;
    }
  }
  memset(f, 0, sizeof(f));
  f[1][1] = 1;
  for (int i = 2; i <= n; i++) {
    for (int j = 1; j <= m; j++) {
      if (mp[i][j]) continue;
      f[i][j] = (f[i][j] + f[i - 1][j] + f[i][j - 1]) % mod;
    }
  }
  x1 = f[n][m - 1];
  x2 = f[n - 1][m];
  memset(f, 0, sizeof(f));
  f[1][1] = 1;
  for (int i = 1; i <= n; i++) {
    for (int j = 2; j <= m; j++) {
      if (mp[i][j]) continue;
      f[i][j] = (f[i][j] + f[i - 1][j] + f[i][j - 1]) % mod;
    }
  }
  x3 = f[n][m - 1];
  x4 = f[n - 1][m];
  printf("%lld\n", ((x1 * x4 % mod) - (x2 * x3 % mod) + mod) % mod);
}
}  // namespace zzc
int main() {
  zzc::work();
  return 0;
}
