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())
points = [list(map(int, input().split())) for i in range(N)]


def dist(cx, cy, nx, ny):
    return ((cx - nx) ** 2 + (cy - ny) ** 2) ** 0.5


def circumcenter(x1, x2, x3, y1, y2, y3):
    # coordinates

    # length of each side squared and area of the triangle
    a2 = (x2 - x3) ** 2 + (y2 - y3) ** 2
    b2 = (x1 - x3) ** 2 + (y1 - y3) ** 2
    c2 = (x2 - x1) ** 2 + (y2 - y1) ** 2
    area = ((x2 - x1) * (y3 - y1) - (x3 - x1) * (y2 - y1)) / 2

    # is_triangle
    if area == 0:
        d1 = dist(x1, y1, x2, y2)
        d2 = dist(x1, y1, x3, y3)
        d3 = dist(x2, y2, x3, y3)
        if max(d1, d2, d3) == d1:
            return (x1 + x2) / 2, (y1 + y2) / 2
        elif max(d1, d2, d3) == d2:
            return (x1 + x3) / 2, (y1 + y3) / 2
        else:
            return (x2 + x3) / 2, (y2 + y3) / 2

    # circumcenter coordinate and radius
    x = (a2 * (b2 + c2 - a2) * x1 + b2 * (c2 + a2 - b2) * x2 + c2 * (a2 + b2 - c2) * x3) / (16 * area * area)
    y = (a2 * (b2 + c2 - a2) * y1 + b2 * (c2 + a2 - b2) * y2 + c2 * (a2 + b2 - c2) * y3) / (16 * area * area)

    # return the equation
    return x, y


ans = float('inf')
for i in range(N):
    for j in range(N):
        for k in range(N):
            x1, y1 = points[i]
            x2, y2 = points[j]
            x3, y3 = points[k]

            cx, cy = circumcenter(x1, x2, x3, y1, y2, y3)
            tmp_ans = 0
            for nx, ny in points:
                tmp_ans = max(tmp_ans, dist(cx, cy, nx, ny))
            ans = min(ans, tmp_ans)

print(ans)