#include<bits/stdc++.h>
#define ll long long int
#define pb push_back
#define pob pop_back
#define vi vector<ll>
#define mp make_pair
#define sz size()
#define rep1(i,n) for(i=1;i<=n;i++)
#define rep(i,n) for(i=0;i<n;i++)
#define fast ios::sync_with_stdio(0);cin.tie(0);cout.tie(0)
#define maxx 1005
#define vs vector<string>
#define edge pair<ll,ll>
#define mod 1000000007
using namespace std;
 
 
// ¦¦¦¦¦¦¦¦¦¦¦¦+++++++++++++++++¦¦¦++++++¦¦
// ¦¦¦¦¦¦¦¦¦¦¦¦¦++++++++++++¦¦¦¦¦¦¦¦¦¦+++¦¦
// ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦++++++++¦¦¦¦¦+++++++¦++¦¦
// ¦¦¦¦¦¦¦¦++¦¦¦¦¦¦++++++¦¦¦¦+++++++++++++¦
// ¦¦¦¦¦¦¦++++++¦¦¦++++++¦¦++++++++++++++¦¦
// ¦¦¦¦¦¦¦+++++++¦¦¦+++++++++++++++++++++¦¦
// ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦++++++¦¦¦¦¦¦¦¦¦++++¦¦
// ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦+++++¦¦¦¦¦¦¦¦+++++++¦ 
// ¦¦¦¦¦¦¦¦¦¦++¦¦¦¦¦¦¦+++++++++++++++++++¦¦
// ¦¦¦¦¦¦¦++++¦¦¦¦¦¦¦¦+++++++++++++++++++¦¦
// ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦+++++++++++++++++++¦¦
// ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦+++++++++++++++++++¦¦
// ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦+++++++++++++++++++¦¦
// ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦+++++++++++++++++++¦¦ 
// ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦++++++++++++++++++++¦¦
// ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦++++++++++++¦¦+¦++¦¦¦
// ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦+++++++¦¦+++++¦¦¦
// ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦+¦¦¦¦+++¦¦¦¦++++++¦¦¦
// ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦+++¦¦+¦¦¦¦¦+++++++¦¦¦¦
// ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦+++++++++++¦¦¦¦
// ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦+++++++++++++++++++¦¦¦¦¦
// ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦++++++++++++++++¦¦¦¦¦¦
// ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦+++++++++++¦¦¦¦¦¦¦
// ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦+¦¦¦+++++++++++¦¦¦¦¦¦¦¦
// ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦+++++++++¦¦¦¦¦¦¦¦¦
// ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦++++++++¦¦¦¦¦¦¦¦¦¦
// ¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦¦++++++¦¦¦¦¦¦¦¦¦¦¦¦

//ll dp[maxx];
//ll par[maxx];

//vector<ll>v;
//sqrt(n)
/*
bool isprime(ll n)
{
	if(n==1)
	return false;
	for(ll i=2;i*i<=n;i++)
	{
		if(n%i==0)
		return false;
	}
	return true;
}
*/
////////////////////////////////////////////sieve/////////////////////////////////////////////////////
/*
void sieve()
{
	ll n=1000000;
		ll i;
	ll prime[n+1]={0};	
	ll j;
	prime[1]=1;
	prime[0]=1;
	for(i=2;i*i<=n;i++)
	{
		if(prime[i]==0)
		{
			for(j=2*i;j<=n;j=j+i)
			{
				prime[j]=1;
			}
		}
	}
	ll cnt=0;
	for(i=0;i<=n;i++)
	{
		if(prime[i]==0)
		cnt++;
		
		if(prime[cnt]==0)
		pp[i]=1;
		else
		pp[i]=0;
	}
	for(i=1;i<=n;i++)
	{
		pp[i]+=pp[i-1];
	}

}*/	




//map<ll,ll>f;
//map<pair<ll,ll>,ll>m;


////////////////////////////////////////////////matrix power///////////////////////////////////////////////////
//ll ar[2][2];
//ll I[2][2];

/*
void mul(ll A[][2],ll B[][2],ll m)
{
	ll res[m+1][m+1];
	rep(i,m)
	{
		rep(j,m)
		{
			res[i][j]=0;
			rep(k,m)
			{
				res[i][j]=res[i][j]%mod;
				res[i][j]+=(A[i][k]*B[k][j])%mod;
				res[i][j]=res[i][j]%mod;
			}
			
		}
	}
	rep(i,m)
	{
		rep(j,m)
		{
			A[i][j]=res[i][j];
		}
	}
}

void power(ll a[][2],ll m,ll n)
{
	rep(i,m)rep(j,m)
	{
		if(i==j)
		I[i][j]=1;
		else
		I[i][j]=0;
	}
	
	while(n)
	{
		if(n%2)
		{
			//I=I*a;
			mul(I,a,2);
			n--;	
		}
		else
		{
			//a=a*a;
			mul(a,a,2);
			n/=2;
		}	
	}
	
	rep(i,m)
	{
		rep(j,m)
		{
			a[i][j]=I[i][j];
		}
	}
}*/
/*
void print(ll a[][maxx],ll m)
{
	rep(i,m)
	{
		rep(j,m)
		{
			cout<<(a[i][j])%mod<<" ";
		}
		cout<<endl;
	}
}
*/

ll dp[maxx][maxx];
int main()
{
	fast;
	ll n,m;
	cin>>n>>m;
	vector<string>s;
	string ss;
	ll i,j,k;
	rep(i,n)
	{
		cin>>ss;
		s.pb(ss);	
	}
	dp[0][0]=0;
	for(i=0;i<n;i++)
	{
		for(j=0;j<m;j++)
		{
			
			if(i==0 && j==0)
			{
				dp[i][j]=0;
				
			}
			else if(i==0 && j!=0)
			{
				if(j==1)
				{
					if(s[i][j]=='.')
					{
						dp[i][j]=1;
					}
					else
					{
						dp[i][j]=0;
					}
				}
				else if(s[i][j]=='.' )
				dp[i][j]=dp[i][j-1]%mod;
				else if(s[i][j]=='#')
				{
					dp[i][j]=0;
				}
				
			}
			else if(j==0 && i!=0)
			{
				if(i==1)
				{
					if(s[i][j]=='.')
					{
						dp[i][j]=1;
					}
					else
					{
						dp[i][j]=0;
					}
				}
				else if(s[i][j]=='.' )
				dp[i][j]=dp[i-1][j];
				else if(s[i][j]=='#')
				{
					dp[i][j]=0;
				}
			}
			else
			{
				if(s[i][j]=='.')
				{
					dp[i][j]=(dp[i-1][j]+dp[i][j-1])%mod;
				}
				else
				{
					dp[i][j]=0;
				}
			}
		}
		
	}
	
	cout<<dp[n-1][m-1]%mod<<endl;
	return 0;
	
}	
//cout<<"YES"<<endl;

//cout<<"NO"<<endl;

Measured memory_bytes: 9216