/*
وَلَا تُخْزِنِي يَوْمَ يُبْعَثُونَ•يَوْمَ لَا يَنفَعُ مَالٌ وَلَا بَنُونَ•إِلَّا مَنْ أَتَى اللَّهَ بِقَلْبٍ سَلِيم❤
*/
#include <bits/stdc++.h>
#define ll long long
#define el endl
using namespace std;
void saf_sofa()
{
if (fopen("in.txt", "r"))
{
freopen("in.txt", "r", stdin);
freopen("out.txt", "w", stdout);
}
ios_base::sync_with_stdio(false);
cin.tie(NULL);
}
int dx[] = { 0, 0, 1, -1, 1, 1, -1, -1 };
int dy[] = { -1, 1, 0, 0, -1, 1, 1, -1 };
const int N=1001,mod=1e9+7;
char dp[N][N],arr[N][N];
int n;
int DP(int i, int j)
{
if (arr[i][j] == '*' || i >= n || j >= n)
return 0;
if (i == n - 1 && j == n - 1)
return 1;
if (~dp[i][j])
return dp[i][j];
int ch1 = DP(i + 1, j);
int ch2 = DP(i, j + 1);
int ans = (ch1 + ch2) % mod;
dp[i][j] = ans;
return dp[i][j];
}
void solve()
{
}
int main()
{
saf_sofa();
int t_ = 1;
// cin >> t_;
while (t_--)
{
cin >> n;
for(int i=0;i<n;i++){
for(int j=0;j<n;j++){
cin>>arr[i][j];
}
}
memset(dp, -1, sizeof dp);
// solve();
cout << DP(0 ,0);
}
}
/*
وَليتَ الذي بَيني وبينَك عامِرٌ وبَيني وبَينَ العَـٰالمينَ خرَابُ
*/
LyoK2YjZjtmE2Y7YpyDYqtmP2K7Zktiy2ZDZhtmQ2Yog2YrZjtmI2ZLZhdmOINmK2Y/YqNmS2LnZjtir2Y/ZiNmG2Y7igKLZitmO2YjZktmF2Y4g2YTZjtinINmK2Y7ZhtmB2Y7YudmPINmF2Y7Yp9mE2Ywg2YjZjtmE2Y7YpyDYqNmO2YbZj9mI2YbZjuKAotil2ZDZhNmR2Y7YpyDZhdmO2YbZkiDYo9mO2KrZjtmJINin2YTZhNmR2Y7Zh9mOINio2ZDZgtmO2YTZktio2Y0g2LPZjtmE2ZDZitmF4p2kCiovCiNpbmNsdWRlIDxiaXRzL3N0ZGMrKy5oPgojZGVmaW5lIGxsIGxvbmcgbG9uZwojZGVmaW5lIGVsIGVuZGwKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKdm9pZCBzYWZfc29mYSgpCnsKICAgIGlmIChmb3BlbigiaW4udHh0IiwgInIiKSkKICAgIHsKICAgICAgICBmcmVvcGVuKCJpbi50eHQiLCAiciIsIHN0ZGluKTsKICAgICAgICBmcmVvcGVuKCJvdXQudHh0IiwgInciLCBzdGRvdXQpOwogICAgfQogICAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbyhmYWxzZSk7CiAgICBjaW4udGllKE5VTEwpOwp9CmludCBkeFtdID0geyAwLCAwLCAxLCAtMSwgMSwgMSwgLTEsIC0xIH07CmludCBkeVtdID0geyAtMSwgMSwgMCwgMCwgLTEsIDEsIDEsIC0xIH07CmNvbnN0IGludCBOPTEwMDEsbW9kPTFlOSs3OwpjaGFyIGRwW05dW05dLGFycltOXVtOXTsKaW50IG47CmludCBEUChpbnQgaSwgaW50IGopCnsKCWlmIChhcnJbaV1bal0gPT0gJyonIHx8IGkgPj0gbiB8fCBqID49IG4pCgkJcmV0dXJuIDA7CglpZiAoaSA9PSBuIC0gMSAmJiBqID09IG4gLSAxKQoJCXJldHVybiAxOwoJaWYgKH5kcFtpXVtqXSkKCQlyZXR1cm4gZHBbaV1bal07CgoJaW50IGNoMSA9IERQKGkgKyAxLCBqKTsKCWludCBjaDIgPSBEUChpLCBqICsgMSk7CglpbnQgYW5zID0gKGNoMSArIGNoMikgJSBtb2Q7CglkcFtpXVtqXSA9IGFuczsKCXJldHVybiBkcFtpXVtqXTsKfQp2b2lkIHNvbHZlKCkKewp9CmludCBtYWluKCkKewoJc2FmX3NvZmEoKTsKCWludCB0XyA9IDE7CgkvLyBjaW4gPj4gdF87Cgl3aGlsZSAodF8tLSkKCXsKCQkKCQljaW4gPj4gbjsKCQlmb3IoaW50IGk9MDtpPG47aSsrKXsKCQkJZm9yKGludCBqPTA7ajxuO2orKyl7CgkJCQljaW4+PmFycltpXVtqXTsKCQkJfQoJCX0KCQltZW1zZXQoZHAsIC0xLCBzaXplb2YgZHApOwoJCS8vIHNvbHZlKCk7CgkJY291dCA8PCBEUCgwICwwKTsKCX0KfQovKgoK2YjZjtmE2YrYqtmOINin2YTYsNmKINio2Y7ZitmG2Yog2YjYqNmK2YbZjtmDINi52KfZhdmQ2LHZjCDZiNio2Y7ZitmG2Yog2YjYqNmO2YrZhtmOINin2YTYudmO2YDZsNin2YTZhdmK2YbZjiDYrtix2Y7Yp9io2Y8KCiov