#include<bits/stdc++.h>
using namespace std;
const int N=100001;
int fa[N],s,p,a[N],b[N];
double mincost;
int find(int x){
if(fa[x]==x) return x;
else return fa[x]=(find(fa[x]));
}
void init(int n){
for(int i=1;i<=n;i++) fa[i]=i;
}
struct node{
int x,y;
double z;
}e[N];
bool cmp(node x,node y){
return x.z<y.z;
}
int main(){
cin>>s>>p;
init(p);
int ans=0;
for(int i=1;i<=p;i++){
cin>>a[i]>>b[i];
for(int j=1;j<i;j++){
ans++;
e[ans].z=sqrt((a[i]-a[j])*(a[i]-a[j])+(b[i]-b[j])*(b[i]-b[j]));
e[ans].x=i;
e[ans].y=j;
}
}
sort(e+1,e+ans+1,cmp);
int ans1=0;
for(int i=1;i<=ans;i++){
int fx=find(e[i].x);
int fy=find(e[i].y);
if(fx!=fy){
fa[fx]=fy;
mincost=e[i].z;
ans1++;
}
if(ans1==p-s) break;
}
printf("%.2lf",mincost);
return 0;
}
求助40分