#include <bits/stdc++.h>
#define ll long long
#define el cout << '\n'
#define BIT(n) (1ll << (n))
#define bit(mask, i) (((mask) >> (i)) & 1)
using namespace std;
const int maxn = 12;
const ll INF = 1e4;
int t;
ll cost[maxn + 10][maxn + 10], dp[maxn + 10][BIT(maxn)];
void minimize(ll &a, ll b)
{
a = min(a, b);
}
int main()
{
ios_base::sync_with_stdio(0); cin.tie(0); cout.tie(0);
if (fopen("TRUYENFILE.INP", "r"))
{
freopen("TRUYENFILE.INP", "r", stdin);
freopen("TRUYENFILE.OUT", "w", stdout);
}
cin >> t;
while (t--)
{
int n;
cin >> n;
for (int i = 0; i < n; i++)
for (int j = 0; j < n; j++)
cin >> cost[i][j];
for (int i = 0; i < n; i++)
for (int mask = 0; mask < BIT(n); mask++)
dp[i][mask] = INF;
for (int i = 0; i < n; i++)
dp[i][0] = dp[i][BIT(i)] = 0;
for (int mask = 0; mask < BIT(n); mask++)
for (int i = 0; i < n; i++)
if (bit(mask, i))
for (int submask = mask; submask; submask = (submask - 1) & mask)
for (int j = 0; j < n; j++)
if (bit(submask, j))
minimize(dp[i][mask], cost[i][j] + max(dp[j][submask], dp[i][mask ^ submask]));
// for (int i = 0; i < n; i++)
// {
// for (int mask = 0; mask < BIT(n); mask++)
// cout << dp[i][mask] << ' ';
// el;
// }
cout << dp[0][BIT(n) - 1], el;
}
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CgojZGVmaW5lIGxsIGxvbmcgbG9uZwojZGVmaW5lIGVsIGNvdXQgPDwgJ1xuJwojZGVmaW5lIEJJVChuKSAoMWxsIDw8IChuKSkKI2RlZmluZSBiaXQobWFzaywgaSkgKCgobWFzaykgPj4gKGkpKSAmIDEpCgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKY29uc3QgaW50IG1heG4gPSAxMjsKY29uc3QgbGwgSU5GID0gMWU0OwoKaW50IHQ7CmxsIGNvc3RbbWF4biArIDEwXVttYXhuICsgMTBdLCBkcFttYXhuICsgMTBdW0JJVChtYXhuKV07Cgp2b2lkIG1pbmltaXplKGxsICZhLCBsbCBiKQp7CiAgICBhID0gbWluKGEsIGIpOwp9CgppbnQgbWFpbigpCnsKICAgIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oMCk7IGNpbi50aWUoMCk7IGNvdXQudGllKDApOwogICAgaWYgKGZvcGVuKCJUUlVZRU5GSUxFLklOUCIsICJyIikpCiAgICB7CiAgICAgICAgZnJlb3BlbigiVFJVWUVORklMRS5JTlAiLCAiciIsIHN0ZGluKTsKICAgICAgICBmcmVvcGVuKCJUUlVZRU5GSUxFLk9VVCIsICJ3Iiwgc3Rkb3V0KTsKICAgIH0KCiAgICBjaW4gPj4gdDsKICAgIHdoaWxlICh0LS0pCiAgICB7CiAgICAgICAgaW50IG47CiAgICAgICAgY2luID4+IG47CiAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyBpKyspCiAgICAgICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgbjsgaisrKQogICAgICAgICAgICAgICAgY2luID4+IGNvc3RbaV1bal07CiAgICAgICAgZm9yIChpbnQgaSA9IDA7IGkgPCBuOyBpKyspCiAgICAgICAgICAgIGZvciAoaW50IG1hc2sgPSAwOyBtYXNrIDwgQklUKG4pOyBtYXNrKyspCiAgICAgICAgICAgICAgICBkcFtpXVttYXNrXSA9IElORjsKICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykKICAgICAgICAgICAgZHBbaV1bMF0gPSBkcFtpXVtCSVQoaSldID0gMDsKICAgICAgICBmb3IgKGludCBtYXNrID0gMDsgbWFzayA8IEJJVChuKTsgbWFzaysrKQogICAgICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykKICAgICAgICAgICAgICAgIGlmIChiaXQobWFzaywgaSkpCiAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgc3VibWFzayA9IG1hc2s7IHN1Ym1hc2s7IHN1Ym1hc2sgPSAoc3VibWFzayAtIDEpICYgbWFzaykKICAgICAgICAgICAgICAgICAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBuOyBqKyspCiAgICAgICAgICAgICAgICAgICAgICAgICAgICBpZiAoYml0KHN1Ym1hc2ssIGopKQogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIG1pbmltaXplKGRwW2ldW21hc2tdLCBjb3N0W2ldW2pdICsgbWF4KGRwW2pdW3N1Ym1hc2tdLCBkcFtpXVttYXNrIF4gc3VibWFza10pKTsKLy8gICAgICAgIGZvciAoaW50IGkgPSAwOyBpIDwgbjsgaSsrKQovLyAgICAgICAgewovLyAgICAgICAgICAgIGZvciAoaW50IG1hc2sgPSAwOyBtYXNrIDwgQklUKG4pOyBtYXNrKyspCi8vICAgICAgICAgICAgICAgIGNvdXQgPDwgZHBbaV1bbWFza10gPDwgJyAnOwovLyAgICAgICAgICAgIGVsOwovLyAgICAgICAgfQogICAgICAgIGNvdXQgPDwgZHBbMF1bQklUKG4pIC0gMV0sIGVsOwogICAgfQp9Cg==