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
#include<bits/stdc++.h>
using namespace std;
struct pos{long double x,y;};
pos sub(pos p1,pos p2){pos p;p.x=p1.x-p2.x;p.y=p1.y-p2.y;return p;}
pos cent(pos p1,pos p2){pos p;p.x=(p1.x+p2.x)/2;p.y=(p1.y+p2.y)/2;return p;}
long double D2(pos p){return p.x*p.x+p.y*p.y;}
long double D(pos p){return sqrt(D2(p));}
long double dot(pos p1,pos p2){return p1.x*p2.x+p1.y*p2.y;}
long double cross(pos p1,pos p2){return abs(p1.x*p2.y-p1.y*p2.x);}
long double R(pos p1,pos p2,pos p3){
  //鋭角三角は正弦定理
  if(dot(sub(p2,p1),sub(p3,p1))>0
     &&dot(sub(p3,p2),sub(p1,p2))>0
     &&dot(sub(p1,p3),sub(p2,p3))>0){
    pos v1=sub(p1,p3);pos v2=sub(p2,p3);
    long double sin=cross(v1,v2)/(D(v1)*D(v2));
    return D(sub(v2,v1))/(sin*2);
  }
  //鈍角三角は距離の最大値の半分
  return max(max(D(sub(p1,p2)),D(sub(p2,p3))),D(sub(p3,p1)))/2;
}
int main(){
  cout<<fixed<<setprecision(20);
  long N;cin>>N;
  vector<pos>P(N);for(int i=0;i<N;i++)cin>>P[i].x>>P[i].y;
  if(N==2){cout<<D(sub(P[0],P[1]))/2<<endl;return 0;}
  long double M=0;
  for(int i=0;i<N-2;i++)for(int j=i+1;j<N-1;j++)for(int k=j+1;k<N;k++){
    M=max(M,R(P[i],P[j],P[k]));
  }
  cout<<M<<endl;

}

