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
N = int(input())

x = []

for i in range(N):
    x.append(list(map(int,input().split()))) 


def dist2(a,b):
    return ((a[0]-b[0])**2 + (a[1]-b[1])**2)**0.5

D = [[dist2(x[i],x[j]) for i in range(N)] for j in range(N)]

def dist3(i,j,k):
    a,b,c = D[i][j],D[j][k],D[k][i]
    cosA = (b**2 + c**2 - a**2)/(2*b*c)
    sinA = (1 - cosA**2)**0.5

    if sinA>1e-7:
        ans =(a/sinA)/2
        return ans
    else:
        return 0

def mid(a,b):
    return [(a[0]+b[0])/2,(a[1]+b[1])/2]

ans = 0

for i in range(N):
    for j in range(i+1,N):
        ans = max(D[i][j]/2,ans)
for i in range(N):
    for j in range(i+1,N):
        for k in range(j+1,N):
            flag = True
            if dist2(x[k],mid(x[i],x[j])) <= D[i][j]/2 or dist2(x[j],mid(x[i],x[k])) <= D[i][k]/2 or dist2(x[i],mid(x[j],x[k])) <= D[j][k]/2:
                flag=False
            ans = max(D[i][j]/2,D[j][k]/2,D[k][i]/2,ans)
            if flag:
                ans = max(dist3(i,j,k),ans)

print(ans)