import sys readline=sys.stdin.readline from collections import defaultdict class UnionFind: def __init__(self,N,label=None,f=None,weighted=False): self.N=N self.parents=[None]*self.N self.size=[1]*self.N self.roots={i for i in range(self.N)} self.label=label if self.label!=None: self.label=[x for x in label] self.f=f self.weighted=weighted if self.weighted: self.weight=[0]*self.N def Find(self,x): stack=[] while self.parents[x]!=None: stack.append(x) x=self.parents[x] if self.weighted: w=0 for y in stack[::-1]: self.parents[y]=x w+=self.weight[y] self.weight[y]=w else: for y in stack[::-1]: self.parents[y]=x return x def Union(self,x,y,w=None): root_x=self.Find(x) root_y=self.Find(y) if root_x==root_y: if self.weighted: if self.weight[y]-self.weight[x]==w: return True else: return False else: if self.size[root_x]1: mid=(ok+ng)//2 if is_ok(mid): ok=mid else: ng=mid return ok N=int(readline()) X,Y=[],[] for _ in range(N): x,y=map(int,readline().split()) X.append(x) Y.append(y) def is_ok(x): UF=UnionFind(N) for i in range(N): for j in range(i+1,N): if (X[i]-X[j])**2+(Y[i]-Y[j])**2<=100*x**2: UF.Union(i,j) return UF.Same(0,N-1) ans=Bisect_Int(10**9,0,is_ok)*10 print(ans)