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 CPP):

Solution:
#include<bits/stdc++.h>

using namespace std;

int main(){
	//ios_base::sync_with_stdio(false);
	cin.tie(NULL);
	
	int n;
	cin >> n;
	vector<complex<long double>> p(n);
	for(int i=0;i<n;i++){
		long double x,y;
		cin >> x >> y;
		complex<long double> c(x,y);
		p[i]=c;
	}
	
	long double res=1LL<<50;
	for(int i=0;i<n;i++){
		for(int j=i+1;j<n;j++){
			for(int k=j+1;k<n;k++){
				complex<long double> &a=p[i],&b=p[j],&c=p[k];
				complex<long double> num=(a-b)*norm(c)+(b-c)*norm(a)+(c-a)*norm(b);
				complex<long double> den=(a-b)*conj(c)+(b-c)*conj(a)+(c-a)*conj(b);
				
				complex<long double> cent=num/den;
				
				long double naga=0;
				for(int ii=0;ii<n;ii++){
					complex<long double> dif=p[ii]-cent;
					naga=max(naga,abs(dif));
				}
				res=min(res,naga);
			}
		}
	}
	
	complex<long double> t(2,0);
	for(int i=0;i<n;i++){
		for(int j=0;j<n;j++){
			complex<long double> &a=p[i],&b=p[j];
			complex<long double> cent=(a+b)/t;
			long double naga=0;
			for(int ii=0;ii<n;ii++){
				complex<long double> dif=p[ii]-cent;
				naga=max(naga,abs(dif));
			}
			res=min(res,naga);
		}
	}
	cout.precision(20);
	cout << res << "\n";
	return 0;
}