#include <stdio.h> #include <iostream> using namespace std; int m,n,dist[500][500]; int ma; int prime(){ int v,min; int d[500]; int flag[500]; memset(flag,0,sizeof(flag)); for(int i=0;i<n;i++) d[i]=dist[0][i]; flag[0]=1; for(int i=0;i<n-1;i++){ min=0x7fffffff; for(int j=1;j<n;j++) if(!flag[j]&&min>d[j]){ min=d[j]; v=j; } flag[v]=1; if(ma<min) ma=min; for(int i=1;i<n;i++) if(!flag[i]&&d[i]>dist[v][i]) d[i]=dist[v][i]; } return ma; } int main(){ int i,j; cin>>m; while(m--){ cin>>n; for(i=0;i<n;i++) for(j=0;j<n;j++) cin>>dist[i][j]; ma=0; ma=prime(); cout<<ma<<endl; } system("PAUSE"); return 0; }