#include <cstdio>
#include <cstdlib>
#include <iostream>
#include <stack>
#include <queue>
#include <algorithm>
#include <cstring>
#include <string>
#include <cmath>
#include <vector>
#include <bitset>
#include <list>
#include <sstream>
#include <set>
#include <functional>
using namespace std;
#define INF 0x3f3f3f3f
#define MAX 100
typedef long long ll;
int n,v;
int cost[505][505];
bool used[505];
int mincost[505];
void prim()
{
for (int i = 0; i < v; i += 1){
used[i] = false;
mincost[i] = INF;
}
mincost[0] = 0;
int ans = 0;
while (1){
int s = -1;
for (int i = 0; i < v; i += 1)
if (!used[i] && (s == -1|| mincost[i] < mincost[s]))
s = i;
if(s == -1) break;
ans = max(ans,mincost[s]);
used[s] = true;
for (int i = 0; i < v; i += 1)
mincost[i] = min(mincost[i],cost[s][i]);
}
cout << ans << endl;
}
int main(int argc, char const* argv[])
{
cin >> n;
while (n--){
cin >> v;
for (int i = 0; i < v; i += 1)
for (int j = 0; j < v; j += 1)
cin >> cost[i][j];
prim();
}
return 0;
}