#include <bits/stdc++.h>
#define T int t;cin>>t;while(t--)
#define fast ios_base::sync_with_stdio(false);cin.tie(nullptr);cout.tie(nullptr)
#define ll long long
#define endl '\n'
using namespace std;
const ll mod = 1e9 + 7;
const ll N = 1e3 + 3;
ll n, m;
char grid[N][N];
ll dp[N][N];

ll solve(ll i, ll j) {
    if (i == (n - 1) && j == (m - 1)) {
        return 1;
    }
    if (dp[i][j] >= 1) {
        return (dp[i][j]) % mod;
    }
    int o1 = 0, o2 = 0;
    if (grid[i + 1][j] != '#' && (i + 1) < n) o1 = solve(i + 1, j);
    if (grid[i][j + 1] != '#' && (j + 1) < m) o2 = solve(i, j + 1);
    return dp[i][j] = (o1 + o2) % mod;
}

void Abady() {
    cin >> n >> m;
    for (int i = 0; i < n; i++) {
        for (int j = 0; j < m; j++) {
            cin >> grid[i][j];
        }
    }
    cout << (solve(0, 0)) % mod;
}

int main() {
    fast;
    Abady();
}
