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
read = sys.stdin.buffer.read
readline = sys.stdin.buffer.readline
readlines = sys.stdin.buffer.readlines
import itertools

n = int(readline())
xy = tuple(map(int,read().split()))

#解説ACです

def check(d):
    eps = 1/(10**10)
    points = []
    for c in itertools.combinations(range(n),2):
        x1,y1 = xy[c[0]*2 : c[0]*2+2]
        x2,y2 = xy[c[1]*2 : c[1]*2+2]

        dif = (x1-x2)**2 + (y1-y2)**2
        if(dif > 4*d**2):
            return False

        h = (d**2 - dif/4)**0.5
        xm,ym = (x1+x2)/2, (y1+y2)/2

        dx,dy = (y1-y2), -1*(x1-x2)
        dxy = (dx**2 + dy**2)**0.5

        points.append( (xm + dx*h/dxy, ym + dy*h/dxy)  )
        points.append( (xm - dx*h/dxy, ym - dy*h/dxy)  )

    for xp,yp in points:
        for i in range(n):
            xi,yi = xy[i*2:i*2+2]
            dif = (xp-xi)**2 + (yp-yi)**2
            if(dif > d**2 + eps):
                break
        else:
            return True

    return False

ok = 1000
ng = 0
for _ in range(50):
    mid = (ok+ng)/2
    if(check(mid)):
        ok = mid
    else:
        ng = mid

print(ok)