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:
from math import sqrt
import itertools

N = int(input())
P = []
for i in range(N):
  P.append(list(map(int, input().split())))
  
def dist(P,Q):
  return sqrt( (P[0]-Q[0]) ** 2 + (P[1]-Q[1]) ** 2 )

def isFound(R):
  for i,j in itertools.combinations(list(range(N)),2):
    if dist(P[i], P[j]) >= 2*R:
      continue
    ### calculate cross points with 2 circles whose center us Pi, Pj
    x1,y1 = P[i]
    x2,y2 = P[j]
    PM = dist(P[i], P[j])/2
    #midP = [(P[i][0] + P[j][0])/2, (P[i][1] + P[j][1])/2]
    xm,ym = (x1+x2)/2, (y1+y2)/2
    #slope = (-1) * (P[i][0] - P[j][0]) / (P[i][1] - P[j][1])
    #slope = (x2-x1)/(y2-y1) * (-1)
    # vector = (y2-y1), (x1-x2)
    x_ev, y_ev = y2-y1, x1-x2
    norm_ev = sqrt(x_ev**2 + y_ev**2)
    x_ev, y_ev = x_ev / norm_ev, y_ev / norm_ev
    #ds = sqrt( R**2 - ((dist(P[i], P[j]))/2) ** 2)
    MM = sqrt( R**2 - PM**2 )

    P1 = [xm + x_ev * MM, ym + y_ev * MM]
    P2 = [xm - x_ev * MM, ym - y_ev * MM]
    #print(P1, P2)
    
    ### judge each point within circle which P is center, R is radius
    for v in [P1, P2]:
      flg = False
      for p in P:
        if dist(v,p) > R + 1e-7: # testcase1
          flg = True
          break
      if flg:
        continue
      else:
        return True
  
  return False


l,r = 0, 1001

for i in range(100):
  m = (l+r)/2
  #print(m)
  if isFound(m):
    r = m
  else:
    l = m
        
print(m)