#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<int, int> ii;
const int INF = 1e9;
const ll LINF = 1e18;
template<typename T>
void maximize(T& a, const T& b) {
if (a < b) a = b;
}
int n;
int a[16][16];
ll dp[1 << 16]; // dp[mask] = Tổng điểm lớn nhất có thể đạt được khi chia nhóm cho các chú thỏ có trong mask
int main() {
ios::sync_with_stdio(0); cin.tie(0);
cin >> n;
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) cin >> a[i][j];
}
// Trường hợp các chú thỏ có trong mask cùng thuộc chung một nhóm
for (int mask = 0; mask < (1 << n); mask++) {
ll tot = 0;
for (int i = 0; i + 1 < n; i++) {
if (!(mask & (1 << i))) continue;
for (int j = i + 1; j < n; j++) {
if (!(mask & (1 << j))) continue;
tot += a[i][j];
}
}
dp[mask] = tot;
}
// Trường hợp các chú thỏ có trong mask được chia thành các nhóm nhỏ hơn
for (int mask = 1; mask < (1 << n); mask++) {
for (int submask = mask; submask > 0; submask = (submask - 1) & mask) {
maximize(dp[mask], dp[submask] + dp[mask ^ submask]);
}
}
cout << dp[(1 << n) - 1] << '\n';
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+IAp1c2luZyBuYW1lc3BhY2Ugc3RkOyAgCgp0eXBlZGVmIGxvbmcgbG9uZyBsbDsgIAp0eXBlZGVmIHBhaXI8aW50LCBpbnQ+IGlpOyAgCgpjb25zdCBpbnQgSU5GID0gMWU5OyAgCmNvbnN0IGxsIExJTkYgPSAxZTE4OyAgCgp0ZW1wbGF0ZTx0eXBlbmFtZSBUPgp2b2lkIG1heGltaXplKFQmIGEsIGNvbnN0IFQmIGIpIHsKCWlmIChhIDwgYikgYSA9IGI7ICAKfQoKaW50IG47ICAKaW50IGFbMTZdWzE2XTsgIApsbCBkcFsxIDw8IDE2XTsgLy8gZHBbbWFza10gPSBU4buVbmcgxJFp4buDbSBs4bubbiBuaOG6pXQgY8OzIHRo4buDIMSR4bqhdCDEkcaw4bujYyBraGkgY2hpYSBuaMOzbSBjaG8gY8OhYyBjaMO6IHRo4buPIGPDsyB0cm9uZyBtYXNrCgppbnQgbWFpbigpIHsKCWlvczo6c3luY193aXRoX3N0ZGlvKDApOyBjaW4udGllKDApOyAgCQoJY2luID4+IG47Cglmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykgewoJCWZvciAoaW50IGogPSAwOyBqIDwgbjsgaisrKSBjaW4gPj4gYVtpXVtqXTsgCgl9CgkKCS8vIFRyxrDhu51uZyBo4bujcCBjw6FjIGNow7ogdGjhu48gY8OzIHRyb25nIG1hc2sgY8O5bmcgdGh14buZYyBjaHVuZyBt4buZdCBuaMOzbQoJZm9yIChpbnQgbWFzayA9IDA7IG1hc2sgPCAoMSA8PCBuKTsgbWFzaysrKSB7CgkJbGwgdG90ID0gMDsgIAoJCWZvciAoaW50IGkgPSAwOyBpICsgMSA8IG47IGkrKykgewoJCQlpZiAoIShtYXNrICYgKDEgPDwgaSkpKSBjb250aW51ZTsgCgkJCWZvciAoaW50IGogPSBpICsgMTsgaiA8IG47IGorKykgewoJCQkJaWYgKCEobWFzayAmICgxIDw8IGopKSkgY29udGludWU7IAoJCQkJdG90ICs9IGFbaV1bal07IAoJCQl9CgkJfQoJCWRwW21hc2tdID0gdG90OyAKCX0KCgkvLyBUcsaw4budbmcgaOG7o3AgY8OhYyBjaMO6IHRo4buPIGPDsyB0cm9uZyBtYXNrIMSRxrDhu6NjIGNoaWEgdGjDoG5oIGPDoWMgbmjDs20gbmjhu48gaMahbgoJZm9yIChpbnQgbWFzayA9IDE7IG1hc2sgPCAoMSA8PCBuKTsgbWFzaysrKSB7CgkJZm9yIChpbnQgc3VibWFzayA9IG1hc2s7IHN1Ym1hc2sgPiAwOyBzdWJtYXNrID0gKHN1Ym1hc2sgLSAxKSAmIG1hc2spIHsKCQkJbWF4aW1pemUoZHBbbWFza10sIGRwW3N1Ym1hc2tdICsgZHBbbWFzayBeIHN1Ym1hc2tdKTsgCgkJfQoJfQoKCWNvdXQgPDwgZHBbKDEgPDwgbikgLSAxXSA8PCAnXG4nOyAKfQ==