#include <bits/stdc++.h>

using namespace std;

int a[20][20];
int n;
long long dp[1 << 16];

int main(){
	scanf("%d", &n);

	for(int i = 0; i < n; i++)
		for(int j = 0; j < n; j++)
			scanf("%d", &a[i][j]);

	for(int mask = 0; mask < (1 << n); mask++){
		for(int i = 0; i < n; i++){
			for(int j = i + 1; j < n; j++){
				if((mask & (1 << i)) && (mask & (1 << j))) dp[mask] += a[i][j];
			}
		}

		for(int sub1 = mask; sub1; sub1 = (sub1 - 1) & mask){
			dp[mask] = max(dp[mask], dp[sub1] + dp[sub1 ^ mask]);
		}
	}

	printf("%lld\n", dp[(1 << n) - 1]);
	
	return 0;
}