#include <bits/stdc++.h>
#define FOR(start,end,jump) for(int i=start;i<=end;i+=jump)
#define fi first
#define se second
#define ps(any) push_back(any)
using namespace std;

const int MOD=1e9+7;
const int maxn=1e3+3;

vector<string> a;
int n,m,f[maxn][maxn];
void READ(){
    ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
    cin>>n>>m;
    a.resize(n);
    FOR(0,n-1,1) cin>>a[i];
}

int dp(int i, int j)
{
    if(f[i][j]!=-1) return f[i][j];
    if(i==n || j==m || a[i][j]=='#') return 0;
    if(i==n-1 && j==m-1) return 1;
        f[i][j]=(dp(i,j+1)%MOD+dp(i+1,j)%MOD)%MOD;
    return f[i][j]%MOD;
}

void DO(){
    memset(f,-1,sizeof(f));
    cout<<dp(0,0);
}

int main()
{
    READ();
    DO();
}
