n = int(input()) f = [list(map(int, input().split())) for i in range(n)] dp = [-1] * (1 << n) dp[0] = 0 for i in range(1 << n): if dp[i] == -1: continue for j in range(n): if i & (1 << j): continue for k in range(j, n): if i & (1 << k): continue to = i | (1 << j) | (1 << k) dp[to] = max(dp[to], dp[i] + f[j][k]) print(dp[(1 << n) - 1])