#!/usr/bin/env python3

n, k = map(int, input().split())
P = [tuple(map(int, input().split())) for i in range(n)]

def cross(a, b, c):
    """(b-a) x (c-a)"""
    return ((b[0] - a[0]) * (c[1] - a[1])
            - (b[1] - a[1]) * (c[0] - a[0]))

def dist2(a, b):
    dx = a[0] - b[0]
    dy = a[1] - b[1]
    return dx * dx + dy * dy

def convex_diameter(poly):
    best = 0
    best_diagonals = set()

    j = 1
    for i in range(n):
        ni = (i + 1) % n
        while True:
            nj = (j + 1) % n
            if cross(poly[i], poly[ni], poly[nj]) > cross(poly[i], poly[ni], poly[j]):
                j = nj
            else:
                break

        def process(i, j):
            nonlocal best, best_diagonals
            d = dist2(poly[i], poly[j])
            if d > best:
                best = d
                best_diagonals = {(min(i, j), max(i, j))}
            elif d == best:
                best_diagonals.add((min(i, j), max(i, j)))

        process(i, j)
        process(ni, j)

    return best, best_diagonals

d2, best_diagonals = convex_diameter(P)
interiorDiagonals = [(i, j) for i, j in best_diagonals if (i+1 != j and (i, j) != (0, n-1))]

from decimal import Decimal as D
from decimal import getcontext
getcontext().prec = 200
d = D(d2).sqrt()
if D(k) > 2 * len(interiorDiagonals) * d:
    d -= D("1e-50")

import math
print (math.ceil(D(k)/(2*d)))
