#include <bits/stdc++.h>
#define ll long double
using namespace std;
int x[561],y[561],n,k,r;
ll dp[561][261];
int maxy[561][561];
ll dist(double x1,double x2,double y1,double y2)
{
return sqrt((abs(x2-x1)*abs(x2-x1))+(abs(y2-y1)*abs(y2-y1)));
}
int main()
{
cin>>n>>k>>r;
for(int i=1;i<=n;i++)
{
cin>>x[i]>>y[i];
}
for(int i=0;i<=k;i++)
{
dp[1][i]=0;
dp[2][i]=dist(x[1],x[2],y[1],y[2]);
}
for(int i=1;i<=n;i++)
{
maxy[i][i]=y[i];
for(int j=i+1;j<=n;j++)
{
maxy[i][j]=max(maxy[i][j-1],y[j]);
}
}
for(int i=3;i<=n;i++)
{
for(int j=0;j<=k;j++)
{
if(j==0)
dp[i][j]=dist(x[i-1],x[i],y[i-1],y[i])+dp[i-1][j];
else
{
dp[i][j]=dist(x[i-1],x[i],y[i-1],y[i])+dp[i-1][j];
for(int l=i-2;l>0;l--)
{
if(maxy[l+1][i-1]<=y[l] && maxy[l+1][i-1]<=y[i])
{
if(dist(x[l],x[i],y[l],y[i])<=r)
{
dp[i][j]=min(dp[i][j],dp[l][j-1]+dist(x[l],x[i],y[l],y[i]));
}
}
}
}
}
}
cout<<fixed<<setprecision(6)<<dp[n][k];
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgbGwgbG9uZyBkb3VibGUKCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgeFs1NjFdLHlbNTYxXSxuLGsscjsKbGwgZHBbNTYxXVsyNjFdOwppbnQgbWF4eVs1NjFdWzU2MV07CgpsbCBkaXN0KGRvdWJsZSB4MSxkb3VibGUgeDIsZG91YmxlIHkxLGRvdWJsZSB5MikKewogICAgcmV0dXJuIHNxcnQoKGFicyh4Mi14MSkqYWJzKHgyLXgxKSkrKGFicyh5Mi15MSkqYWJzKHkyLXkxKSkpOwp9CgppbnQgbWFpbigpCnsKICAgICBjaW4+Pm4+Pms+PnI7CiAgICAgZm9yKGludCBpPTE7aTw9bjtpKyspCiAgICAgewogICAgICAgICBjaW4+PnhbaV0+PnlbaV07CiAgICAgfQogICAgIGZvcihpbnQgaT0wO2k8PWs7aSsrKQogICAgIHsKICAgICAgICBkcFsxXVtpXT0wOwogICAgICAgIGRwWzJdW2ldPWRpc3QoeFsxXSx4WzJdLHlbMV0seVsyXSk7CiAgICAgfQoKCiAgICAgZm9yKGludCBpPTE7aTw9bjtpKyspCiAgICAgewogICAgICAgICBtYXh5W2ldW2ldPXlbaV07CiAgICAgICAgIGZvcihpbnQgaj1pKzE7ajw9bjtqKyspCiAgICAgICAgIHsKICAgICAgICAgICAgIG1heHlbaV1bal09bWF4KG1heHlbaV1bai0xXSx5W2pdKTsKICAgICAgICAgfQogICAgIH0KCgogICAgIGZvcihpbnQgaT0zO2k8PW47aSsrKQogICAgIHsKICAgICAgICAgZm9yKGludCBqPTA7ajw9aztqKyspCiAgICAgICAgIHsKICAgICAgICAgICAgIGlmKGo9PTApCiAgICAgICAgICAgICAgICBkcFtpXVtqXT1kaXN0KHhbaS0xXSx4W2ldLHlbaS0xXSx5W2ldKStkcFtpLTFdW2pdOwogICAgICAgICAgICAgZWxzZQogICAgICAgICAgICAgewogICAgICAgICAgICAgICAgIGRwW2ldW2pdPWRpc3QoeFtpLTFdLHhbaV0seVtpLTFdLHlbaV0pK2RwW2ktMV1bal07CgogICAgICAgICAgICAgICAgIGZvcihpbnQgbD1pLTI7bD4wO2wtLSkKICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWYobWF4eVtsKzFdW2ktMV08PXlbbF0gJiYgbWF4eVtsKzFdW2ktMV08PXlbaV0pCiAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBpZihkaXN0KHhbbF0seFtpXSx5W2xdLHlbaV0pPD1yKQogICAgICAgICAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBkcFtpXVtqXT1taW4oZHBbaV1bal0sZHBbbF1bai0xXStkaXN0KHhbbF0seFtpXSx5W2xdLHlbaV0pKTsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICB9CiAgICAgICAgIH0KICAgICB9CiAgICAgY291dDw8Zml4ZWQ8PHNldHByZWNpc2lvbig2KTw8ZHBbbl1ba107Cn0K