#include <iostream>
using namespace std;
#define x first
#define y second
int const NMAX = 1e5;
int n, k;
pair<int, int> p[1 + NMAX];
long long dist(int i, int j) {
return 1LL * (p[i].x - p[j].x) * (p[i].x - p[j].x) + 1LL * (p[i].y - p[j].y) * (p[i].y - p[j].y);
}
long long binarysearch(long long from, long long to, double val) {
if (from < to) {
long long guess = (from + to)/2;
if (1.0 * guess * guess < val) {
return binarysearch(guess+1, to, val);
} else {
return binarysearch(from, guess, val);
}
}
return from;
}
int main() {
cin >> n >> k;
for (int i = 1; i <= n; i++) {
cin >> p[i].x >> p[i].y;
}
int l = 1, r = 1;
long long max_dist = 0;
int counter = 0;
while (l <= n) {
if ((r == n && dist(l, 1) > dist(l, r)) || (r != n && dist(l, r+1) > dist(l, r))) {
r++;
if (r > n) {
r = 1;
}
} else {
long long new_dist = dist(l, r);
if (new_dist == max_dist) {
counter++;
} else if (new_dist > max_dist) {
counter = 1;
max_dist = new_dist;
}
l++;
}
}
counter /= 2;
long long sqr = binarysearch(1, max_dist, max_dist);
if (sqr * sqr == max_dist) {
long long ans = k / (2 * sqr);
if (2 * ans * sqr == k && ans > counter || 2 * ans * sqr != k) {
ans++;
}
cout << ans << "\n";
} else {
long long ans = binarysearch(1, 1e18, (1.0 * k * k) / (4.0 * max_dist));
cout << ans << "\n";
}
//cout << k << " " << sqr << "\n";
}
I2luY2x1ZGUgPGlvc3RyZWFtPgoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCiNkZWZpbmUgeCBmaXJzdAojZGVmaW5lIHkgc2Vjb25kCgppbnQgY29uc3QgTk1BWCA9IDFlNTsKaW50IG4sIGs7CnBhaXI8aW50LCBpbnQ+IHBbMSArIE5NQVhdOwoKbG9uZyBsb25nIGRpc3QoaW50IGksIGludCBqKSB7CiAgICByZXR1cm4gMUxMICogKHBbaV0ueCAtIHBbal0ueCkgKiAocFtpXS54IC0gcFtqXS54KSArIDFMTCAqIChwW2ldLnkgLSBwW2pdLnkpICogKHBbaV0ueSAtIHBbal0ueSk7Cn0KCmxvbmcgbG9uZyBiaW5hcnlzZWFyY2gobG9uZyBsb25nIGZyb20sIGxvbmcgbG9uZyB0bywgZG91YmxlIHZhbCkgewogICAgaWYgKGZyb20gPCB0bykgewogICAgICAgIGxvbmcgbG9uZyBndWVzcyA9IChmcm9tICsgdG8pLzI7CiAgICAgICAgaWYgKDEuMCAqIGd1ZXNzICogZ3Vlc3MgPCB2YWwpIHsKICAgICAgICAJcmV0dXJuIGJpbmFyeXNlYXJjaChndWVzcysxLCB0bywgdmFsKTsKICAgICAgICB9IGVsc2UgewogICAgICAgIAlyZXR1cm4gYmluYXJ5c2VhcmNoKGZyb20sIGd1ZXNzLCB2YWwpOwogICAgICAgIH0KICAgIH0KICAgIHJldHVybiBmcm9tOwp9CgppbnQgbWFpbigpIHsKICAgIGNpbiA+PiBuID4+IGs7CiAgICBmb3IgKGludCBpID0gMTsgaSA8PSBuOyBpKyspIHsKICAgICAgICBjaW4gPj4gcFtpXS54ID4+IHBbaV0ueTsKICAgIH0KICAgIGludCBsID0gMSwgciA9IDE7CiAgICBsb25nIGxvbmcgbWF4X2Rpc3QgPSAwOwogICAgaW50IGNvdW50ZXIgPSAwOwogICAgd2hpbGUgKGwgPD0gbikgewogICAgICAgIGlmICgociA9PSBuICYmIGRpc3QobCwgMSkgPiBkaXN0KGwsIHIpKSB8fCAociAhPSBuICYmIGRpc3QobCwgcisxKSA+IGRpc3QobCwgcikpKSB7CiAgICAgICAgICAgIHIrKzsKICAgICAgICAgICAgaWYgKHIgPiBuKSB7CiAgICAgICAgICAgICAgICByID0gMTsKICAgICAgICAgICAgfQogICAgICAgIH0gZWxzZSB7CiAgICAgICAgICAgIGxvbmcgbG9uZyBuZXdfZGlzdCA9IGRpc3QobCwgcik7CiAgICAgICAgICAgIGlmIChuZXdfZGlzdCA9PSBtYXhfZGlzdCkgewogICAgICAgICAgICAgICAgY291bnRlcisrOwogICAgICAgICAgICB9IGVsc2UgaWYgKG5ld19kaXN0ID4gbWF4X2Rpc3QpIHsKICAgICAgICAgICAgICAgIGNvdW50ZXIgPSAxOwogICAgICAgICAgICAgICAgbWF4X2Rpc3QgPSBuZXdfZGlzdDsKICAgICAgICAgICAgfQogICAgICAgICAgICBsKys7CiAgICAgICAgfQogICAgfQogICAgY291bnRlciAvPSAyOwogICAgbG9uZyBsb25nIHNxciA9IGJpbmFyeXNlYXJjaCgxLCBtYXhfZGlzdCwgbWF4X2Rpc3QpOwogICAgaWYgKHNxciAqIHNxciA9PSBtYXhfZGlzdCkgewogICAgICAgIGxvbmcgbG9uZyBhbnMgPSBrIC8gKDIgKiBzcXIpOwogICAgICAgIGlmICgyICogYW5zICogc3FyID09IGsgJiYgYW5zID4gY291bnRlciB8fCAyICogYW5zICogc3FyICE9IGspIHsKICAgICAgICAgICAgYW5zKys7CiAgICAgICAgfQogICAgICAgIGNvdXQgPDwgYW5zIDw8ICJcbiI7CiAgICB9IGVsc2UgewogICAgICAgIGxvbmcgbG9uZyBhbnMgPSBiaW5hcnlzZWFyY2goMSwgMWUxOCwgKDEuMCAqIGsgKiBrKSAvICg0LjAgKiBtYXhfZGlzdCkpOwogICAgICAgIGNvdXQgPDwgYW5zIDw8ICJcbiI7CiAgICB9CiAgICAvL2NvdXQgPDwgayA8PCAiICIgPDwgc3FyIDw8ICJcbiI7Cn0=