//#include <bits/stdc++.h>#include<math.h>#include<cstdio>#include<iostream>#include<cstring>#define int long longusingnamespace std;constint mod =1e9+7;struct node{double x,y,z;}p[1005];int n;doubledis(double xx,double yy,double zz,int i){double x = xx-p[i].x;double y = yy-p[i].y;double z = zz-p[i].z;returnsqrt(x*x+y*y+z*z);}doublesa(){double EPS =1e-9;double T =100000;double delta =0.98;double res =1e18;double x =0,y =0,z =0;while(T > EPS){double diss =0;int d =0;for(int i =0; i < n ; i ++){double tmp =dis(x,y,z,i);if(tmp > diss){
diss = tmp;
d = i;}}
res =min(res,diss);
x +=(p[d].x - x)/diss*delta*T;
y +=(p[d].y - y)/diss*delta*T;
z +=(p[d].z - z)/diss*delta*T;
T *= delta;}return res;}signedmain(){while(~scanf("%lld",&n)&& n){for(int i =0; i < n ; i ++)scanf("%lf%lf%lf",&p[i].x,&p[i].y,&p[i].z);printf("%.15f\n",sa());}return0;}