#include<cstdio>
#include<stdlib.h>
#define N 1000
struct node
{
int x,y,w;
}p[N*N];
int f[N];
int cmp( const void *a ,const void *b)
{
return (*(node *)a).w > (*(node *)b).w ? 1 : -1;
}
int find(int x)
{
if(x!=f[x])f[x]=find(f[x]);
return f[x];
}
int main()
{
int t,i,j,k,n,b;
scanf("%d",&t);
while(t--)
{
scanf("%d",&n);
k=0;
for(i=0;i<=n;i++)f[i]=i;
for(i=0;i<n;i++)
{
for(j=0;j<n;j++)
{
scanf("%d",&b);
p[k].x=i;
p[k].y=j;
p[k].w=b;
k++;
}
}
qsort(p,k,sizeof(p[0]),cmp);
int ans;
for(i=0;i<k;i++)
{
int x=find(p[i].x);
int y=find(p[i].y);
if(x!=y)
{
f[x]=y;
ans=p[i].w;
}
}
printf("%d\n",ans);
}
}