import numpy as np from scipy.sparse.csgraph import connected_components N = int(input()) P = np.array([tuple(map(int, input().split())) for _ in range(N)],dtype=np.int64) X, Y = P[:, 0], P[:, 1] D = (X[:, None] - X[None, :]) ** 2 + (Y[:, None] - Y[None, :]) ** 2 def f(x): _, labels = connected_components(D <= x ** 2) return labels[0] == labels[-1] # bisect l, r = 0, 2 * 10 ** 9 while r - l > 10: m = (r + l) // 20 * 10 if f(m): r = m else: l = m print(r)