#include<bits/stdc++.h>
using namespace std;

const int maxn=85;
int n;
char s[maxn][maxn];
long long f[maxn][maxn][maxn][maxn],g[maxn][maxn][maxn];

int main(){
	scanf("%d",&n);
	n*=2;
	for(int i=0;i<n;i++){
		scanf("%s",s[i]);
		for(int j=0;j<n;j++)
			s[i+n][j]=s[i][j+n]=s[i+n][j+n]=s[i][j];
	}
	for(int len=1;len<=n;len++){
		for(int l=0;l<2*n;l++){
			int r=l+len-1;
			if(r>=2*n)break;
			for(int m=l;m<=r;m++){
				if(l==m&&m==r)g[l][r][m]++;
				for(int ll=l;ll<m;ll++)for(int rr=r;rr>m;rr--)
					g[l][r][m]+=g[ll+1][rr-1][m]*f[l][ll][rr][r];
				for(int ll=0;ll<l;ll++)for(int rr=ll;rr<l;rr++){
					if(rr-ll+1>len)break;
					for(int mm=ll;mm<=rr;mm++)if(s[mm][m]=='1')
						f[ll][rr][l][r]+=g[ll][rr][mm]*g[l][r][m];
				}
				for(int ll=r+1;ll<2*n;ll++)for(int rr=ll;rr<2*n;rr++){
					if(rr-ll+1>=len)break;
					for(int mm=ll;mm<=rr;mm++)if(s[mm][m]=='1')
						f[l][r][ll][rr]+=g[ll][rr][mm]*g[l][r][m];
				}
			}
		}
	}
	long long ans=0;
	for(int i=0;i<n;i++)for(int j=i+1;j<n;j++)if(s[i][j]=='1')
		ans+=g[i+1][i-1+n][j];
	printf("%lld\n",ans/(n/2));
	return 0;
}