/*t题意有点不好读。就是求第k大边,注意精度的控制。该题卡精度。
用ceil函数向上取整!*/
#include <stdio.h>
#include <cstring>
#include <cmath>
#include <iostream>
#include <algorithm>
#define maxn 100000
#define inf 999999999999.0
using namespace std;
struct point
{
double x,y;
} p[maxn];
double f[maxn];
double dist[maxn];
double dis(point a,point b)
{
return sqrt((a.x-b.x)*(a.x-b.x)+(a.y-b.y)*(a.y-b.y));
}
bool vis[maxn];
int main()
{
int t,m;
double a,b;
scanf("%d",&t);
while(t--)
{
int h=0;
scanf("%d",&m);
while(scanf("%lf",&a)==1)
{
if(a==-1) break;
scanf("%lf",&b);
p[h].x=a;
p[h].y=b;
h++;
}
memset(vis,false,sizeof(vis));
memset(dist,0x7f,sizeof(dist));
dist[0]=0;
memset(f,0,sizeof(f));
int tt=0;
for(int i=0; i<h; i++)
{
double min=inf;
int k;
for(int j=0; j<h; j++)
{
if(dist[j]<min&&!vis[j])
{
k=j;
min=dist[j];
}
}
f[tt++]=min;
vis[k]=true;
for(int j=0; j<h; j++)
{
if(dist[j]>dis(p[j],p[k]))
dist[j]=dis(p[j],p[k]);
}
}
sort(f,f+tt);
printf("%.0lf\n",ceil(f[tt-m]));
}
return 0;
}