#include<bits/stdc++.h>
using namespace std;
char g[20][20];
int n,cnt,f[50],z[50],a[20],c[20];
void dfs(int x)
{
if(x>n){cnt++;return;}
for(int i=1;i<=n;i++)
if(g[x][i]=='*'&&!c[i]&&!f[x+i]&&!z[x-i+n])
{
c[i]=f[x+i]=z[x-i+n]=1;
dfs(x+1);
c[i]=f[x+i]=z[x-i+n]=0;
}
}
int main()
{
cin>>n;
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
cin>>g[i][j];
dfs(1);
cout<<cnt;
return 0;
}
玄关