#include <bits/stdc++.h>
#define x first
#define y second
// #define int long long
#define LL long long
using namespace std;
const int N = 510;
typedef pair<int, int> PII;
PII q[N];
int n, k, p[N], idx;
struct Node
{
int a, b;
double w;
bool operator< (const Node& W) const
{
return w < W.w;
}
}e[N * N];
double get_dist(int i, int j)
{
double dx = q[i].x - q[j].x, dy = q[i].y - q[j].y;
return sqrt(dx * dx + dy * dy);
}
int find(int x) // 并查集
{
if (p[x] != x) p[x] = find(p[x]);
return p[x];
}
signed main()
{
cin >> n >> k;
for (int i = 1; i <= n; i ++ ) cin >> q[i].x >> q[i].y;
for (int i = 1; i <= n; i ++ ) p[i] = i;
for (int i = 1; i <= n; i ++ )
{
for (int j = 1; j < i; j ++ )
{
e[idx ++ ] = {i, j, get_dist(i, j)};
}
}
sort(e, e + idx);
double res;
int cnt = 0;
for (int i = 0; i < idx; i ++ )
{
int pa = find(e[i].a), pb = find(e[i].b);
if (pa != pb)
{
p[pa] = pb;
//当n = 2, k = 0时,下面的if语句不执行,所以需要这句语句
res = e[i].w;
cnt ++ ;
}
//k台卫星设备最多确定(k - 1)条边,所以需要自己找(n - 1) - (k - 1) = n - k条边
if (cnt == n - k)
{
res = e[i].w;
break;
}
}
//每个村庄都有卫星设备,所以不需要无线电收发机
if (k >= n) res = 0;
printf("%.2lf", res);
return 0;
}