Problem: Given are N points (x_i, y_i) in a two-dimensional plane.

Find the minimum radius of a circle such that all the points are inside or on it.

Constraints

* 2 \leq N \leq 50
* 0 \leq x_i \leq 1000
* 0 \leq y_i \leq 1000
* The given N points are all different.
* The values in input are all integers.

Input

Input is given from Standard Input in the following format:


N
x_1 y_1
:
x_N y_N


Output

Print the minimum radius of a circle such that all the N points are inside or on it.

Your output will be considered correct if the absolute or relative error from our answer is at most 10^{-6}.

Examples

Input

2
0 0
1 0


Output

0.500000000000000000


Input

3
0 0
0 1
1 0


Output

0.707106781186497524


Input

10
10 9
5 9
2 0
0 0
2 7
3 3
2 5
10 0
3 7
1 9


Output

6.726812023536805158

Solution (in PYTHON3):

Solution:
import sys
input=sys.stdin.readline
import math
rt=math.sqrt
eps=10**(-6)
n=int(input())
XY=[]
for i in range(n):
  XY.append(tuple(map(int,input().split())))

def dist2(xy1,xy2):
  return (xy1[0]-xy2[0])**2+(xy1[1]-xy2[1])**2

def dist1(xy1,xy2):
  return rt(dist2(xy1,xy2))

def center(xy1,xy2,xy3):
  den=(xy1[0]-xy2[0])*(xy2[1]-xy3[1])-(xy1[1]-xy2[1])*(xy2[0]-xy3[0])
  if den==0:
    if dist2(xy1,xy2)>=dist2(xy2,xy3):
      if dist2(xy1,xy2)>=dist2(xy3,xy1):
        return [(xy1[0]+xy2[0])/2,(xy1[1]+xy2[1])/2,dist1(xy1,xy2)/2]
      else:
        return [(xy3[0]+xy1[0])/2,(xy3[1]+xy1[1])/2,dist1(xy3,xy1)/2]
    else:
      if dist2(xy2,xy3)>=dist2(xy3,xy1):
        return [(xy2[0]+xy3[0])/2,(xy2[1]+xy3[1])/2,dist1(xy2,xy3)/2]
      else:
        return [(xy3[0]+xy1[0])/2,(xy3[1]+xy1[1])/2,dist1(xy3,xy1)/2]

  else:  
    retx1=(xy1[0]**2+xy1[1]**2)-(xy2[0]**2+xy2[1]**2)
    rety1=(xy2[0]**2+xy2[1]**2)-(xy3[0]**2+xy3[1]**2)
  
    retx2=(xy2[1]-xy3[1])*retx1-(xy1[1]-xy2[1])*rety1
    rety2=(xy3[0]-xy2[0])*retx1+(xy1[0]-xy2[0])*rety1
  
  
    retx3,rety3=retx2/2/den,rety2/2/den
    retr=dist1([retx3,rety3],xy1)
    return [retx3,rety3,retr]

ans=float("inf")
import itertools
for a,b in itertools.combinations(XY,2):
  x,y,r=center(a,b,b)
  chk=True
  for xy in XY:
    if dist1([x,y],xy)>r+eps:
      chk=False
  if chk:
    ans=min(ans,r)

if n>=3:
  for a,b,c in itertools.combinations(XY,3):
    x,y,r=center(a,b,c)
    chk=True
    for xy in XY:
      if dist1([x,y],xy)>r+eps:
        chk=False
    if chk:
      ans=min(ans,r)
print(ans)