N = int(input()) f = [[int(j) for j in input().split()] for i in range(N)] dp = [0 for i in range(1 << N)] for i in range(1 << N): bit = 0 for j in range(N): if (i>>j)&1: bit+=1 if bit&1: continue for j in range(N): if (i >> j)&1: continue for k in range(N): if j == k: continue if (i>>k) & 1: continue dp[i | 1 << j | 1 << k] = max(dp[i | 1 << j | 1 << k],dp[i]+f[j][k]) print(dp[(1<