#include<bits/stdc++.h>
using namespace std;
#define BAI VINH
#define ll long long
#define FIO() ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0)
#define open() freopen(BAI".INP","r",stdin); freopen(BAI".OUT","w",stdout);
const ll INF = 1e18;
ll sol(ll n, const vector<vector<ll>>& vinh) {
vector<ll> u(n + 1, 0), v(n + 1, 0);
vector<ll> p(n + 1, 0), way(n + 1, 0);
for (ll i = 1; i <= n; ++i) {
p[0] = i;
ll j0 = 0;
vector<ll> minv(n + 1, INF);
vector<bool> used(n + 1, false);
do {
used[j0] = true;
ll i0 = p[j0], j1 = 0;
ll delta = INF;
for (ll j = 1; j <= n; ++j) {
if (!used[j]) {
ll cur = vinh[i0 - 1][j - 1] - u[i0] - v[j];
if (cur < minv[j]) {
minv[j] = cur;
way[j] = j0;
}
if (minv[j] < delta) {
delta = minv[j];
j1 = j;
}
}
}
for (ll j = 0; j <= n; ++j) {
if (used[j]) {
u[p[j]] += delta;
v[j] -= delta;
} else {
minv[j] -= delta;
}
}
j0 = j1;
} while (p[j0] != 0);
do {
ll j1 = way[j0];
p[j0] = p[j1];
j0 = j1;
} while (j0 != 0);
}
return -v[0];
}
int main() {
FIO();
ll n;
if (!(cin >> n)) return 0;
vector<vector<ll>> vinh(n, vector<ll>(n));
for (ll i = 0; i < n; ++i) {
for (ll j = 0; j < n; ++j) {
cin >> vinh[i][j];
}
}
cout << sol(n, vinh) << endl;
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgojZGVmaW5lIEJBSSBWSU5ICiNkZWZpbmUgbGwgbG9uZyBsb25nCiNkZWZpbmUgRklPKCkgaW9zX2Jhc2U6OnN5bmNfd2l0aF9zdGRpbygwKTsgY2luLnRpZSgwKTsgY291dC50aWUoMCkKI2RlZmluZSBvcGVuKCkgZnJlb3BlbihCQUkiLklOUCIsInIiLHN0ZGluKTsgZnJlb3BlbihCQUkiLk9VVCIsInciLHN0ZG91dCk7Cgpjb25zdCBsbCBJTkYgPSAxZTE4OwoKbGwgc29sKGxsIG4sIGNvbnN0IHZlY3Rvcjx2ZWN0b3I8bGw+PiYgdmluaCkgewogICAgdmVjdG9yPGxsPiB1KG4gKyAxLCAwKSwgdihuICsgMSwgMCk7CiAgICB2ZWN0b3I8bGw+IHAobiArIDEsIDApLCB3YXkobiArIDEsIDApOwoKICAgIGZvciAobGwgaSA9IDE7IGkgPD0gbjsgKytpKSB7CiAgICAgICAgcFswXSA9IGk7CiAgICAgICAgbGwgajAgPSAwOwogICAgICAgIHZlY3RvcjxsbD4gbWludihuICsgMSwgSU5GKTsKICAgICAgICB2ZWN0b3I8Ym9vbD4gdXNlZChuICsgMSwgZmFsc2UpOwoKICAgICAgICBkbyB7CiAgICAgICAgICAgIHVzZWRbajBdID0gdHJ1ZTsKICAgICAgICAgICAgbGwgaTAgPSBwW2owXSwgajEgPSAwOwogICAgICAgICAgICBsbCBkZWx0YSA9IElORjsKCiAgICAgICAgICAgIGZvciAobGwgaiA9IDE7IGogPD0gbjsgKytqKSB7CiAgICAgICAgICAgICAgICBpZiAoIXVzZWRbal0pIHsKICAgICAgICAgICAgICAgICAgICBsbCBjdXIgPSB2aW5oW2kwIC0gMV1baiAtIDFdIC0gdVtpMF0gLSB2W2pdOwogICAgICAgICAgICAgICAgICAgIGlmIChjdXIgPCBtaW52W2pdKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIG1pbnZbal0gPSBjdXI7CiAgICAgICAgICAgICAgICAgICAgICAgIHdheVtqXSA9IGowOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICBpZiAobWludltqXSA8IGRlbHRhKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIGRlbHRhID0gbWludltqXTsKICAgICAgICAgICAgICAgICAgICAgICAgajEgPSBqOwogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQoKICAgICAgICAgICAgZm9yIChsbCBqID0gMDsgaiA8PSBuOyArK2opIHsKICAgICAgICAgICAgICAgIGlmICh1c2VkW2pdKSB7CiAgICAgICAgICAgICAgICAgICAgdVtwW2pdXSArPSBkZWx0YTsKICAgICAgICAgICAgICAgICAgICB2W2pdIC09IGRlbHRhOwogICAgICAgICAgICAgICAgfSBlbHNlIHsKICAgICAgICAgICAgICAgICAgICBtaW52W2pdIC09IGRlbHRhOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIGowID0gajE7CiAgICAgICAgfSB3aGlsZSAocFtqMF0gIT0gMCk7CgogICAgICAgIGRvIHsKICAgICAgICAgICAgbGwgajEgPSB3YXlbajBdOwogICAgICAgICAgICBwW2owXSA9IHBbajFdOwogICAgICAgICAgICBqMCA9IGoxOwogICAgICAgIH0gd2hpbGUgKGowICE9IDApOwogICAgfQogICAgcmV0dXJuIC12WzBdOwp9CgppbnQgbWFpbigpIHsKICAgIEZJTygpOwoKICAgIGxsIG47CiAgICBpZiAoIShjaW4gPj4gbikpIHJldHVybiAwOwoKICAgIHZlY3Rvcjx2ZWN0b3I8bGw+PiB2aW5oKG4sIHZlY3RvcjxsbD4obikpOwogICAgZm9yIChsbCBpID0gMDsgaSA8IG47ICsraSkgewogICAgICAgIGZvciAobGwgaiA9IDA7IGogPCBuOyArK2opIHsKICAgICAgICAgICAgY2luID4+IHZpbmhbaV1bal07CiAgICAgICAgfQogICAgfQogICAgY291dCA8PCBzb2wobiwgdmluaCkgPDwgZW5kbDsKCiAgICByZXR1cm4gMDsKfQo=