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