#include<bits/stdc++.h>
#define oo (long long)(1e18)
using namespace std;
long long n, a[21][21], F[1<<21];
int main()
{
ios_base::sync_with_stdio(0);cin.tie(0);cout.tie(0);
cin>>n;
for(long long i=0; i<n; i++)
for(long long j=0; j<n; j++) cin>>a[i][j];
for(long long X=0; X<(1<<n); X++)
for(long long i=0; i<n; i++)
{
long long cnt = __builtin_popcount(X);
if( ( (X>>i) & 1) == 0 )
{
long long Y = X | (1<<i);
F[Y] = max( F[Y] , F[X] + a[i][cnt] );
}
}
long long res = -oo;
for(long long i=0; i<(1<<n); i++) res = max( res , F[i] );
cout << res;
return 0;
}
/*
Solve by: Truong Tuan Kiet - Informatics K36. Solve in 10h00 - 25/6/2025
*/
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KI2RlZmluZSBvbyAobG9uZyBsb25nKSgxZTE4KQp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKbG9uZyBsb25nIG4sIGFbMjFdWzIxXSwgRlsxPDwyMV07CmludCBtYWluKCkKewogICAgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbygwKTtjaW4udGllKDApO2NvdXQudGllKDApOwogICAgCiAgICBjaW4+Pm47CiAgICBmb3IobG9uZyBsb25nIGk9MDsgaTxuOyBpKyspCiAgICAgICAgZm9yKGxvbmcgbG9uZyBqPTA7IGo8bjsgaisrKSBjaW4+PmFbaV1bal07CiAgICAKICAgIAoKICAgIGZvcihsb25nIGxvbmcgWD0wOyBYPCgxPDxuKTsgWCsrKQogICAgICAgIGZvcihsb25nIGxvbmcgaT0wOyBpPG47IGkrKykKICAgICAgICB7CiAgICAgICAgICAgIGxvbmcgbG9uZyBjbnQgPSBfX2J1aWx0aW5fcG9wY291bnQoWCk7CiAgICAgICAgICAgIGlmKCAoIChYPj5pKSAmIDEpID09IDAgKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgbG9uZyBsb25nIFkgPSAgWCB8ICgxPDxpKTsKICAgICAgICAgICAgICAgICBGW1ldID0gbWF4KCBGW1ldICwgRltYXSArIGFbaV1bY250XSApOwogICAgICAgICAgICB9CiAgICAgICAgfQoKICAgIGxvbmcgbG9uZyByZXMgPSAtb287CiAgICBmb3IobG9uZyBsb25nIGk9MDsgaTwoMTw8bik7IGkrKykgcmVzID0gbWF4KCByZXMgLCBGW2ldICk7CiAgICBjb3V0IDw8IHJlczsKICAgIHJldHVybiAwOwp9Ci8qCiAgICBTb2x2ZSBieTogVHJ1b25nIFR1YW4gS2lldCAtIEluZm9ybWF0aWNzIEszNi4gU29sdmUgaW4gMTBoMDAgLSAyNS82LzIwMjUKKi8KCg==