#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();
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgRk9SKHN0YXJ0LGVuZCxqdW1wKSBmb3IoaW50IGk9c3RhcnQ7aTw9ZW5kO2krPWp1bXApCiNkZWZpbmUgZmkgZmlyc3QKI2RlZmluZSBzZSBzZWNvbmQKI2RlZmluZSBwcyhhbnkpIHB1c2hfYmFjayhhbnkpCnVzaW5nIG5hbWVzcGFjZSBzdGQ7Cgpjb25zdCBpbnQgTU9EPTFlOSs3Owpjb25zdCBpbnQgbWF4bj0xZTMrMzsKCnZlY3RvcjxzdHJpbmc+IGE7CmludCBuLG0sZlttYXhuXVttYXhuXTsKdm9pZCBSRUFEKCl7CiAgICBpb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKDApO2Npbi50aWUoMCk7Y291dC50aWUoMCk7CiAgICBjaW4+Pm4+Pm07CiAgICBhLnJlc2l6ZShuKTsKICAgIEZPUigwLG4tMSwxKSBjaW4+PmFbaV07Cn0KCmludCBkcChpbnQgaSwgaW50IGopCnsKICAgIGlmKGZbaV1bal0hPS0xKSByZXR1cm4gZltpXVtqXTsKICAgIGlmKGk9PW4gfHwgaj09bSB8fCBhW2ldW2pdPT0nIycpIHJldHVybiAwOwogICAgaWYoaT09bi0xICYmIGo9PW0tMSkgcmV0dXJuIDE7CiAgICAgICAgZltpXVtqXT0oZHAoaSxqKzEpJU1PRCtkcChpKzEsaiklTU9EKSVNT0Q7CiAgICByZXR1cm4gZltpXVtqXSVNT0Q7Cn0KCnZvaWQgRE8oKXsKICAgIG1lbXNldChmLC0xLHNpemVvZihmKSk7CiAgICBjb3V0PDxkcCgwLDApOwp9CgppbnQgbWFpbigpCnsKICAgIFJFQUQoKTsKICAgIERPKCk7Cn0K