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

int n;
int a[23][23];
LL dp[1<<16];

LL doit(int bit) {
	if (dp[bit] != -1) return dp[bit];
	dp[bit] = 0;
	int p[16],cp = 0;
	for (int i=0; i<n; i++) {
		if ((1<<i) & bit) {
			p[cp++] = i;
		}
	}
	for (int i=0; i<cp; i++) {
		for (int j=i+1; j<cp; j++) {
			dp[bit] += a[p[i]][p[j]];
		}
	}
	//printf("Yo %d = %lld\n",bit,dp[bit]);
	for (int i=(bit-1)&bit; i; i=(i-1)&bit) {
		dp[bit] = max(dp[bit],doit(i)+doit(i^bit));
	}
	return dp[bit];
}

int main() {
	scanf("%d",&n);
	for (int i=0; i<n; i++) {
		for (int j=0; j<n; j++) {
			scanf("%d",&a[i][j]);
		}
	}
	memset(dp,-1,sizeof(dp));
	printf("%lld\n",doit((1<<n)-1));
	return 0;
}
