#include<bits/stdc++.h>
using namespace std;
int fa[1000010];
int n,m;
struct line
{
int x,y;
}qnum[1000010];
struct node
{
int x,y;
double z;
}edge[1000010];
double maxn;
int x[100010],y[1000010];
int find(int x)
{
if(fa[x]!=x)
{
return fa[x]=find(fa[x]);
}
return x;
}
bool cmp(node a,node b)
{
return a.z<b.z;
}
int num=0;
double wtf()
{
double dis=0;
int qum=0;
for(int i=1;i<=n;i++)
fa[i]=i;
sort(edge+1,edge+num+1,cmp);
for(int i=1;i<=num;i++)
{
int fx=find(edge[i].x);
int fy=find(edge[i].y);
if(fx!=fy)
{
fa[fx]=fy;
dis+=edge[i].z;
qum++;
maxn=edge[i].z;
if(qum==n-m)
return maxn;
}
}
return -1;
}
int main()
{
cin>>n>>m;
for(int i=1;i<=n;i++)
{
cin>>qnum[i].x>>qnum[i].y;
}
for(int i=1;i<=n;i++)
for(int j=i+1;j<=n;j++)
{
num++;
edge[num].x=i,edge[num].y=j;
edge[num].z=sqrt((double)(qnum[i].x-qnum[j].x)*(double)(qnum[i].x-qnum[j].x)+(double)(qnum[i].y-qnum[j].y)*(double)(qnum[i].y-qnum[j].y));
}
printf("%.2lf",wtf());
return 0;
}