import sys,heapq input = sys.stdin.buffer.readline n=int(input()) par=[-1]*n def find(x): if par[x]<0: return x else: par[x]=find(par[x]) return par[x] def unite(x,y): x=find(x) y=find(y) if x==y: return False else: if par[x]>par[y]: x,y=y,x par[x]+=par[y] par[y]=x return True def same(x,y): return find(x)==find(y) def size(x): return -par[find(x)] import heapq XY=[] for _ in range(n): XY.append(tuple(int(i) for i in input().split())) Q=[] eps=0.0001 def f(x1,y1,x2,y2): return ((int(((x2-x1)**2+(y2-y1)**2)**0.5+eps)-1)//10+1)*10 for i in range(n-1): for j in range(i+1,n): heapq.heappush(Q,(f(XY[i][0],XY[i][1],XY[j][0],XY[j][1]),i,j)) ans=0 while True: d,i,j=heapq.heappop(Q) if not same(i,j): ans=max(ans,d) unite(i,j) if same(0,n-1): break print(ans)