#include<bits/stdc++.h>
#define pi acos(-1)
#define all(x) (x).begin(),(x).end()
#define fill(x,y) memset(x, y, sizeof(x))
#define trace(x) cout << #x << " = " << x << endl
#define bug cout << "Bug check" << endl
#define endl '\n'
using namespace std;
int main(){
//freopen("in.txt","r", stdin);
//freopen("out.txt","w", stdout);
//ios::sync_with_stdio(0);
//cin.tie(0);
int n; cin >> n;
double r; cin >> r;
vector < pair<double,double> > v(n);
for(int i=0;i<n;i++){
double x,y; cin >> x >> y;
v[i].first = x;
v[i].second = y;
}
double d = sqrt((v[0].first-v[n-1].first)*(v[0].first-v[n-1].first) + (v[0].second-v[n-1].second)*(v[0].second-v[n-1].second));
for(int i=0;i<n-1;i++){
d+= sqrt((v[i].first-v[i+1].first)*(v[i].first-v[i+1].first) + (v[i].second-v[i+1].second)*(v[i].second-v[i+1].second));
}
d+= n*(2.0*pi*r/n);
printf("%.2lf\n", d);
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KCiNkZWZpbmUgICAgcGkgICAgICAgICAgYWNvcygtMSkgCiNkZWZpbmUgICAgYWxsKHgpICAgICAgKHgpLmJlZ2luKCksKHgpLmVuZCgpCiNkZWZpbmUgICAgZmlsbCh4LHkpICAgbWVtc2V0KHgsIHksIHNpemVvZih4KSkKI2RlZmluZSAgICB0cmFjZSh4KSAgICBjb3V0IDw8ICN4IDw8ICIgPSAiIDw8IHggPDwgZW5kbAojZGVmaW5lICAgIGJ1ZyAgICAgICAgIGNvdXQgPDwgIkJ1ZyBjaGVjayIgPDwgZW5kbAojZGVmaW5lICAgIGVuZGwgICAgICAgICdcbicKCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbWFpbigpewoJLy9mcmVvcGVuKCJpbi50eHQiLCJyIiwgc3RkaW4pOwoJLy9mcmVvcGVuKCJvdXQudHh0IiwidyIsIHN0ZG91dCk7CiAKCS8vaW9zOjpzeW5jX3dpdGhfc3RkaW8oMCk7CgkvL2Npbi50aWUoMCk7CgoJaW50IG47IGNpbiA+PiBuOwoJZG91YmxlIHI7IGNpbiA+PiByOwoKCXZlY3RvciA8IHBhaXI8ZG91YmxlLGRvdWJsZT4gPiB2KG4pOwoKCWZvcihpbnQgaT0wO2k8bjtpKyspewoJCWRvdWJsZSB4LHk7IGNpbiA+PiB4ID4+IHk7CgkJdltpXS5maXJzdCA9IHg7CgkJdltpXS5zZWNvbmQgPSB5OwoJfQoKCWRvdWJsZSBkID0gc3FydCgodlswXS5maXJzdC12W24tMV0uZmlyc3QpKih2WzBdLmZpcnN0LXZbbi0xXS5maXJzdCkgKyAodlswXS5zZWNvbmQtdltuLTFdLnNlY29uZCkqKHZbMF0uc2Vjb25kLXZbbi0xXS5zZWNvbmQpKTsKCglmb3IoaW50IGk9MDtpPG4tMTtpKyspewoJCWQrPSBzcXJ0KCh2W2ldLmZpcnN0LXZbaSsxXS5maXJzdCkqKHZbaV0uZmlyc3QtdltpKzFdLmZpcnN0KSArICh2W2ldLnNlY29uZC12W2krMV0uc2Vjb25kKSoodltpXS5zZWNvbmQtdltpKzFdLnNlY29uZCkpOwoJfQoKCWQrPSBuKigyLjAqcGkqci9uKTsKCQoJcHJpbnRmKCIlLjJsZlxuIiwgZCk7CglyZXR1cm4gMDsKfQ==