/*
* Author: Geeza
*/
#include <bits/stdc++.h>
#define ld long double
#define ll long long
#define pb push_back
#define fin(a, n) for(int i = a; i < n; i++)
#define fjn(a, n) for(int j = a; j < n; j++)
#define all(a) a.begin(),a.end()
#define allr(a) a.rbegin(),a.rend()
#define FAST ios_base::sync_with_stdio(false), cin.tie(nullptr), cout.tie(nullptr)
using namespace std;
const double PI = acos(-1);
const int N = 1e6+5;
const ll oo = 0x3f3f3f3f3f3f3f3f;
const int mod = 998244353, inf = 1e6;
string di[] = {"D","L", "U", "R", "UL", "UR", "DL", "DR"};
int dx[] = {+1, +0, +0, -1, -1, -1, +1, +1};
int dy[] = {+0, -1, +1, +0, -1, +1, -1, +1};
char dc[] = {'D', 'L', 'R', 'U'};
ll n;
vector<vector<ll>> grid;
ll dp[1<<11][12]; // mask, lst
ll calc(ll mask, ll lst) {
if (mask == (1<<n)-1) {
return grid[lst][0];
}
ll &ret = dp[mask][lst];
if (~ret)return ret;
ret = oo;
for (int i = 1; i < n; i++) {
if ((mask>>i)&1ll)continue;
ret = min(ret, calc(mask|(1ll<<i), i)+grid[lst][i]);
}
return ret;
}
void solve() {
cin >> n; ++n;
grid = vector<vector<ll>>(n, vector<ll>(n, 0));
for (int i = 0; i < n; i++) {
for (int j = 0; j < n; j++) {
if (i==j)continue;
cin>>grid[i][j];
}
}
memset(dp, -1, sizeof dp);
cout << calc(1, 0) << "\n";
}
int main() {
FAST;
#ifndef ONLINE_JUDGE
freopen("input.txt","r",stdin);
freopen("output.txt","w",stdout);
#endif
int tt = 1; cin >> tt;
while(tt--){
solve();
}
return 0;
}
LyoKKiBBdXRob3I6IEdlZXphCiovCgojaW5jbHVkZSA8Yml0cy9zdGRjKysuaD4KCiNkZWZpbmUgbGQgbG9uZyBkb3VibGUKI2RlZmluZSBsbCBsb25nIGxvbmcKI2RlZmluZSBwYiBwdXNoX2JhY2sKI2RlZmluZSBmaW4oYSwgbikgZm9yKGludCBpID0gYTsgaSA8IG47IGkrKykKI2RlZmluZSBmam4oYSwgbikgZm9yKGludCBqID0gYTsgaiA8IG47IGorKykKI2RlZmluZSBhbGwoYSkgYS5iZWdpbigpLGEuZW5kKCkKI2RlZmluZSBhbGxyKGEpIGEucmJlZ2luKCksYS5yZW5kKCkKI2RlZmluZSBGQVNUIGlvc19iYXNlOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpLCBjaW4udGllKG51bGxwdHIpLCBjb3V0LnRpZShudWxscHRyKQoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmNvbnN0IGRvdWJsZSBQSSA9IGFjb3MoLTEpOwpjb25zdCBpbnQgTiA9IDFlNis1Owpjb25zdCBsbCBvbyA9IDB4M2YzZjNmM2YzZjNmM2YzZjsKY29uc3QgaW50IG1vZCA9IDk5ODI0NDM1MywgaW5mID0gMWU2OwoKc3RyaW5nIGRpW10gPSB7IkQiLCJMIiwgIlUiLCAiUiIsICJVTCIsICJVUiIsICJETCIsICJEUiJ9OwppbnQgZHhbXSA9IHsrMSwgKzAsICswLCAtMSwgLTEsIC0xLCArMSwgKzF9OwppbnQgZHlbXSA9IHsrMCwgLTEsICsxLCArMCwgLTEsICsxLCAtMSwgKzF9OwpjaGFyIGRjW10gPSB7J0QnLCAnTCcsICdSJywgJ1UnfTsKCmxsIG47CnZlY3Rvcjx2ZWN0b3I8bGw+PiBncmlkOwpsbCBkcFsxPDwxMV1bMTJdOyAvLyBtYXNrLCBsc3QKCmxsIGNhbGMobGwgbWFzaywgbGwgbHN0KSB7CiAgICBpZiAobWFzayA9PSAoMTw8biktMSkgewogICAgICAgIHJldHVybiBncmlkW2xzdF1bMF07CiAgICB9CgogICAgbGwgJnJldCA9IGRwW21hc2tdW2xzdF07CiAgICBpZiAofnJldClyZXR1cm4gcmV0OwogICAgcmV0ID0gb287CgogICAgZm9yIChpbnQgaSA9IDE7IGkgPCBuOyBpKyspIHsKICAgICAgICBpZiAoKG1hc2s+PmkpJjFsbCljb250aW51ZTsKICAgICAgICByZXQgPSBtaW4ocmV0LCBjYWxjKG1hc2t8KDFsbDw8aSksIGkpK2dyaWRbbHN0XVtpXSk7CiAgICB9CiAgICByZXR1cm4gcmV0Owp9Cgp2b2lkIHNvbHZlKCkgewogICAgY2luID4+IG47ICsrbjsKICAgIGdyaWQgPSB2ZWN0b3I8dmVjdG9yPGxsPj4obiwgdmVjdG9yPGxsPihuLCAwKSk7CiAgICBmb3IgKGludCBpID0gMDsgaSA8IG47IGkrKykgewogICAgICAgIGZvciAoaW50IGogPSAwOyBqIDwgbjsgaisrKSB7CiAgICAgICAgICAgIGlmIChpPT1qKWNvbnRpbnVlOwogICAgICAgICAgICBjaW4+PmdyaWRbaV1bal07CiAgICAgICAgfQogICAgfQogICAgbWVtc2V0KGRwLCAtMSwgc2l6ZW9mIGRwKTsKICAgIGNvdXQgPDwgY2FsYygxLCAwKSA8PCAiXG4iOwp9CgppbnQgbWFpbigpIHsKICAgIEZBU1Q7CiNpZm5kZWYgT05MSU5FX0pVREdFCiAgICBmcmVvcGVuKCJpbnB1dC50eHQiLCJyIixzdGRpbik7CiAgICBmcmVvcGVuKCJvdXRwdXQudHh0IiwidyIsc3Rkb3V0KTsKI2VuZGlmCiAgICBpbnQgdHQgPSAxOyBjaW4gPj4gdHQ7CiAgICB3aGlsZSh0dC0tKXsKICAgICAgICBzb2x2ZSgpOwogICAgfQogICAgcmV0dXJuIDA7Cn0=