#include <iostream>
#include <math.h>
#include <iomanip>
using namespace std;
int n;
long long int k;
long double t1,t2,t3,b1,b2;
int main()
{
cin >>n>>k;
if (n==3)
{
long double x1,x2,x3,y1,y2,y3;
cin >> x1 >> y1;
cin >> x2 >> y2;
cin >> x3 >> y3;
t1=sqrt(pow(x1-x2,2)+pow(y1-y2,2));
t2=sqrt(pow(x3-x2,2)+pow(y3-y2,2));
t3=sqrt(pow(x1-x3,2)+pow(y1-y3,2));
long double p,P;
p=0.5*(t1+t2+t3);
p=sqrt(p*(p-t1)*(p-t2)*(p-t3));
P=p+k*(t1+t2+t3)+0.5*M_PI*pow(k,2);
cout << fixed << setprecision(6)<<P<<endl;
}
else if (n==4)
{
long double p1,p2,p3,r1,r2,r3,p4,r4;
cin >> p1 >> r1;
cin >> p2 >> r2;
cin >> p3 >> r3;
cin >> p4 >> r4;
b1=sqrt(pow(p1-p2,2)+pow(r1-r2,2));
b2=sqrt(pow(p3-p2,2)+pow(r3-r2,2));
long double P;
P=b1*b2+k*(2*b1+2*b2)+M_PI*pow(k,2);
cout << fixed << setprecision(6)<<P<<endl;
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8bWF0aC5oPgojaW5jbHVkZSA8aW9tYW5pcD4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CmludCBuOwpsb25nIGxvbmcgaW50IGs7CmxvbmcgZG91YmxlIHQxLHQyLHQzLGIxLGIyOwppbnQgbWFpbigpCnsKICAgIGNpbiA+Pm4+Pms7CiAgICBpZiAobj09MykKICAgIHsKICAgICAgICBsb25nICAgZG91YmxlIHgxLHgyLHgzLHkxLHkyLHkzOwogICAgICAgIGNpbiA+PiB4MSA+PiB5MTsKICAgICAgICBjaW4gPj4geDIgPj4geTI7CiAgICAgICAgY2luID4+IHgzID4+IHkzOwogICAgICAgIHQxPXNxcnQocG93KHgxLXgyLDIpK3Bvdyh5MS15MiwyKSk7CiAgICAgICAgdDI9c3FydChwb3coeDMteDIsMikrcG93KHkzLXkyLDIpKTsKICAgICAgICB0Mz1zcXJ0KHBvdyh4MS14MywyKStwb3coeTEteTMsMikpOwogICAgICAgIGxvbmcgIGRvdWJsZSBwLFA7CiAgICAgICAgcD0wLjUqKHQxK3QyK3QzKTsKICAgICAgICBwPXNxcnQocCoocC10MSkqKHAtdDIpKihwLXQzKSk7CiAgICAgICAgUD1wK2sqKHQxK3QyK3QzKSswLjUqTV9QSSpwb3coaywyKTsKICAgICAgICBjb3V0IDw8IGZpeGVkIDw8IHNldHByZWNpc2lvbig2KTw8UDw8ZW5kbDsKICAgIH0KICAgIGVsc2UgaWYgKG49PTQpCiAgICB7CiAgICAgICAgbG9uZyBkb3VibGUgcDEscDIscDMscjEscjIscjMscDQscjQ7CiAgICAgICAgY2luID4+IHAxID4+IHIxOwogICAgICAgIGNpbiA+PiBwMiA+PiByMjsKICAgICAgICBjaW4gPj4gcDMgPj4gcjM7CiAgICAgICAgY2luID4+IHA0ID4+IHI0OwogICAgICAgIGIxPXNxcnQocG93KHAxLXAyLDIpK3BvdyhyMS1yMiwyKSk7CiAgICAgICAgYjI9c3FydChwb3cocDMtcDIsMikrcG93KHIzLXIyLDIpKTsKICAgICAgICBsb25nIGRvdWJsZSBQOwogICAgICAgIFA9YjEqYjIrayooMipiMSsyKmIyKStNX1BJKnBvdyhrLDIpOwogICAgICAgIGNvdXQgPDwgZml4ZWQgPDwgc2V0cHJlY2lzaW9uKDYpPDxQPDxlbmRsOwoKICAgIH0KICAgIHJldHVybiAwOwp9