- #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