#include <bits/stdc++.h>
using namespace std;
#define ll long long
#define F first
#define S second
const int mod = 1e9 + 7;
const int N = 2e5 + 10;
pair<int,int>arr[105];
int n , k , vist[105][(1 << 11)];
long double dp[105][(1 << 11)];
long double dist(int &a , int &b)
{
    return (long double)hypot(arr[b].S - arr[a].S , arr[b].F - arr[a].F);
}
long double rec(int ind , int bit)
{
    if((1 << k)-1 == bit)
        return 0;
    if (vist[ind][bit])return dp[ind][bit];
    vist[ind][bit] = 1;
    long double minn = 1e9;
    for(int j = 0 ; j < k ; ++j)
        if (((bit >> j)&1) == 0)
            minn = min(minn , rec(ind , bit | (1 << j))+dist(ind , j));
    for (int i =  k ; i < n ; ++i)
    {
        for (int j =  0 ; j <  k ; ++j)
            if ((((bit >> j)&1) == 0))
                minn = min(minn , rec(i , bit | (1 << j))+dist(i , j)+dist(ind , i));
    }
    return dp[ind][bit] = minn;
}
int main ()
{
    cin.tie(0);cout.tie(0);ios::sync_with_stdio(false);
    cin >> n >> k;
    for (int i = 0 ; i < n ; ++i)
        cin >> arr[i].F >> arr[i].S;
    long double ans = 1e9;
    for(int i = k ; i < n ; ++i)
    {
        memset(vist , 0 , sizeof vist);
        for (int j = 0 ; j < k ; ++j)
            ans = min(ans , rec(i , (1 << j))+dist(i , j));
    }

    printf("%.5LF\n" , ans);
return 0;
}
