#include<iostream>
#include<algorithm>
using namespace std;
const int N = 10010;
bool line[N], uli[N], rli[N];
char h[N][N];
int n, m,cnt=0;
void find(int x)
{
if (n == x)
{
cnt++;
}
for (int i = 0;i < n;i++)
{
if (!line[i] && !uli[x + i] && !rli[n - x + i]&&h[x][i]!='.')
{
line[i] = uli[x + i] = rli[n - x + i] = true;
find(x+1);
line[i] = uli[x + i] = rli[n - x + i] = false;
}
}
}
int main()
{
cin >> n;
for (int i = 0; i < n; i++)
for (int j = 0; j < n; j++)
cin>>h[i][j];
find(0);
cout << cnt << endl;
return 0;
}