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:
n = int(input())
p = []

for _ in range(n):
    x,y = map(int, input().split())
    p.append([x,y])

import math
import itertools

if n == 2:
    print(math.sqrt((p[0][0]-p[1][0])**2 + (p[0][1]-p[1][1])**2)/2)
    exit()

def rad(v):
    p1 = v[0]
    p2 = v[1]
    p3 = v[2]
    x1 = p1[0]
    y1 = p1[1]
    x2 = p2[0]
    y2 = p2[1]
    x3 = p3[0]
    y3 = p3[1]
    
    px = (y1-y3)*(y1**2-y2**2+x1**2-x2**2)-(y1-y2)*(y1**2-y3**2+x1**2-x3**2)
    if (2*(y1-y3)*(x1-x2)-2*(y1-y2)*(x1-x3)) == 0:
        return None
    px = px / (2*(y1-y3)*(x1-x2)-2*(y1-y2)*(x1-x3))
    
    py = (x1-x3)*(x1**2-x2**2+y1**2-y2**2)-(x1-x2)*(x1**2-x3**2+y1**2-y3**2)
    if (2*(x1-x3)*(y1-y2)-2*(x1-x2)*(y1-y3)) == 0:
        return None
    py = py / (2*(x1-x3)*(y1-y2)-2*(x1-x2)*(y1-y3))

    return [px,py,(x1-px)**2+(y1-py)**2]

ans = 10**13

for v in itertools.combinations(p,2):
    p1 = v[0]
    p2 = v[1]
    px = (p1[0]+p2[0])/2
    py = (p1[1]+p2[1])/2
    rr = (p1[0]-p2[0])**2+(p1[1]-p2[1])**2
    rr = rr /4
    chk = True
    for i in range(n):
        if (p[i][0]-px)**2+(p[i][1]-py)**2 > rr + 10**(-6):
            chk = False
    if chk:
        ans = min(ans,rr**0.5)

for v in itertools.combinations(p,3):
    d = rad(v)
    if d == None:
        continue
    chk = True
    for i in range(n):
        if (p[i][0]-d[0])**2+(p[i][1]-d[1])**2 > d[2] + 10**(-6):
            chk = False
    if chk:
        ans = min(ans,d[2]**0.5)

print(ans)