r[1<<24];main(){
	int m[24][24],n,i,j,k,s,t,u,q;
	scanf("%d",&n);
	for(i=0;i<n;i++)for(j=0;j<n;j++)scanf("%d",m[i]+j);
	for(i=0;i<1<<n;i++)if(!__builtin_parity(i))for(j=__builtin_ctz(~i),u=(i|1<<j),k=j+1;k<n;k++)if(t=u|1<<k,s=r[i]+m[j][k],t!=u&&r[t]<s)r[t]=s;
	printf("%d\n",r[(1<<n)-1]);
}