#include<bits/stdc++.h>
using namespace std;
char tu;
int n,ans;
bool lie[15],xie1[28],xie2[28],st[15][15];
void dfs(int hang){
if(hang==n+1){
ans++;
return;
}
for(int i=1;i<=n;i++){
if(!lie[i]&&!xie1[i+hang]&&!xie2[i-hang+n]&&!st[hang][i]){
lie[i]=1;xie1[i+hang]=1;xie2[i-hang+n]=1;
dfs(hang+1);
lie[i]=0;xie1[i+hang]=0;xie2[i-hang+n]=0;
}
}
}
int main(){
scanf("%d",&n);
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
cin>>tu;
if(tu=='.')st[i][j]=1;
}
}
dfs(1);
printf("%d",ans);
}