#include<bits/stdc++.h>
using namespace std;
#define maxn 1010
#define f(x) (x)*(x)
struct point{
int x,y;
};
point A[maxn];
struct edg{
int a,b,l;
};
edg B[maxn*maxn];
bool cmp(edg a,edg b){
return a.l<b.l;
}
int pos,lst,n,m;
int fa[maxn];
int find(int x){
if(fa[x]==0)return x;
fa[x]=find(fa[x]);
return fa[x];
}
int main(){
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++){
scanf("%d%d",&A[i].x,&A[i].y);
for(int j=1;j<i;j++){
B[++lst]=(edg){i,j,f(A[i].x-A[j].x)+f(A[i].y-A[j].y)};
}
}
int cnt=n;
sort(B+1,B+lst+1,cmp);
for(int i=1;i<=lst;i++){
int ga=find(B[i].a),gb(B[i].b);
if(ga!=gb){
cnt--;
fa[ga]=gb;
if(cnt==m){
pos=i+1;
break;
}
}
}
while(find(B[pos].a)==find(B[pos].b))pos++;
printf("%.2lf",sqrt(B[pos].l));
return 0;
}