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]); }