N, K = map(int, input().split()) sx, sy, gx, gy = map(int, input().split()) XY = [list(map(int, input().split())) for _ in range(N)] INF = 1<<60 def distance(x1, y1, x2, y2): return abs(x1-x2)+abs(y1-y2) XY.append((sx, sy)) XY.append((gx, gy)) D = [[-1]*(N+2) for _ in range(N+2)] for i, (X1, Y1) in enumerate(XY): for j, (X2, Y2) in enumerate(XY): D[i][j] = distance(X1, Y1, X2, Y2) def func(P): dist = [INF]*(N+2) visited = [False]*(N+2) dist[N] = 0 for _ in range(N+2): idx = -1 MIN = INF+1 for i in range(N+2): if not visited[i] and dist[i] < MIN: MIN = dist[i] idx = i visited[idx] = True for i in range(N+2): if visited[i]: continue dist[i] = min(dist[i], dist[idx]+(D[idx][i]-1)//P) return dist[N+1] <= K left = 0 right = 10**9 while left+1 < right: mid = (left+right)//2 if not func(mid): left = mid else: right = mid print(right)