#include <cstdio>
#include <vector>
#include <cstring>
#include <cmath>
#include <algorithm>
using namespace std;
int x[100],y[100],z[100],n,all;
int f[100],l[100],d[100][100];
class Dinic{
public:
static const int INF = 1000000007, SIZE = 205;
int c[SIZE][SIZE];
int n,s,t,l[SIZE],e[SIZE];
int flow(int maxf = INF){
int left=maxf;
while(build()) left-=push(s,left);
return maxf-left;
}
int push(int x, int f){
if(x==t) return f;
int& y=e[x],sum=f;
for(;y<n;y++) if(c[x][y]>0 && l[x]+1==l[y]){
int cnt=push(y,min(sum,c[x][y]));
c[x][y]-=cnt;
c[y][x]+=cnt;
sum-=cnt;
if(!sum) return f;
}
return f-sum;
}
bool build(){
int m=0;
memset(l,255,sizeof(l));
l[e[m++]=s]=0;
for(int i=0;i<m;i++) for(int y=0;y<n;y++)
if(c[e[i]][y]>0 && l[y]<0) l[e[m++]=y]=l[e[i]]+1;
memset(e,0,sizeof(e));
return l[t]>=0;
}
}net;
bool gao(int r, int tmp){
memset(net.c,0,sizeof(net.c));
for(int i=0;i<n;i++){
net.c[n+n][i]=f[i];
net.c[i][i+n]=l[i];
for(int j=0;j<n;j++)
if(d[i][j]<=r) net.c[i+n][j]=Dinic::INF;
}
net.n=n+n+1;
net.s=n+n;
net.t=0;
return net.flow()!=all;
}
int main(){
while(scanf("%d",&n)==1){
vector<int> u;
all=0;
for(int i=0;i<n;i++){
scanf("%d%d%d%d%d",x+i,y+i,z+i,f+i,l+i);
all+=f[i];
for(int j=0;j<i;j++){
int dx=x[i]-x[j];
int dy=y[i]-y[j];
int dz=z[i]-z[j];
u.push_back(d[i][j]=d[j][i]=dx*dx+dy*dy+dz*dz);
}
}
sort(u.begin(),u.end());
u.erase(unique(u.begin(),u.end()),u.end());
size_t i=lower_bound(u.begin(),u.end(),0,gao)-u.begin();
if(i==u.size()) puts("-1"); else
printf("%.7f\n",sqrt(u[i]));
}
}
I2luY2x1ZGUgPGNzdGRpbz4KI2luY2x1ZGUgPHZlY3Rvcj4KI2luY2x1ZGUgPGNzdHJpbmc+CiNpbmNsdWRlIDxjbWF0aD4KI2luY2x1ZGUgPGFsZ29yaXRobT4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmludCB4WzEwMF0seVsxMDBdLHpbMTAwXSxuLGFsbDsKaW50IGZbMTAwXSxsWzEwMF0sZFsxMDBdWzEwMF07CgpjbGFzcyBEaW5pY3sKcHVibGljOgogICAgc3RhdGljIGNvbnN0IGludCBJTkYgPSAxMDAwMDAwMDA3LCBTSVpFID0gMjA1OwogICAgaW50IGNbU0laRV1bU0laRV07CiAgICBpbnQgbixzLHQsbFtTSVpFXSxlW1NJWkVdOwogICAgaW50IGZsb3coaW50IG1heGYgPSBJTkYpewogICAgICAgIGludCBsZWZ0PW1heGY7CiAgICAgICAgd2hpbGUoYnVpbGQoKSkgbGVmdC09cHVzaChzLGxlZnQpOwogICAgICAgIHJldHVybiBtYXhmLWxlZnQ7CiAgICB9CiAgICBpbnQgcHVzaChpbnQgeCwgaW50IGYpewogICAgICAgIGlmKHg9PXQpIHJldHVybiBmOwogICAgICAgIGludCYgeT1lW3hdLHN1bT1mOwogICAgICAgIGZvcig7eTxuO3krKykgaWYoY1t4XVt5XT4wICYmIGxbeF0rMT09bFt5XSl7CiAgICAgICAgICAgIGludCBjbnQ9cHVzaCh5LG1pbihzdW0sY1t4XVt5XSkpOwogICAgICAgICAgICBjW3hdW3ldLT1jbnQ7CiAgICAgICAgICAgIGNbeV1beF0rPWNudDsKICAgICAgICAgICAgc3VtLT1jbnQ7CiAgICAgICAgICAgIGlmKCFzdW0pIHJldHVybiBmOwogICAgICAgIH0KICAgICAgICByZXR1cm4gZi1zdW07CiAgICB9CiAgICBib29sIGJ1aWxkKCl7CiAgICAgICAgaW50IG09MDsKICAgICAgICBtZW1zZXQobCwyNTUsc2l6ZW9mKGwpKTsKICAgICAgICBsW2VbbSsrXT1zXT0wOwogICAgICAgIGZvcihpbnQgaT0wO2k8bTtpKyspIGZvcihpbnQgeT0wO3k8bjt5KyspCiAgICAgICAgICAgIGlmKGNbZVtpXV1beV0+MCAmJiBsW3ldPDApIGxbZVttKytdPXldPWxbZVtpXV0rMTsKICAgICAgICBtZW1zZXQoZSwwLHNpemVvZihlKSk7CiAgICAgICAgcmV0dXJuIGxbdF0+PTA7CiAgICB9Cn1uZXQ7Cgpib29sIGdhbyhpbnQgciwgaW50IHRtcCl7CiAgICBtZW1zZXQobmV0LmMsMCxzaXplb2YobmV0LmMpKTsKICAgIGZvcihpbnQgaT0wO2k8bjtpKyspewogICAgICAgIG5ldC5jW24rbl1baV09ZltpXTsKICAgICAgICBuZXQuY1tpXVtpK25dPWxbaV07CiAgICAgICAgZm9yKGludCBqPTA7ajxuO2orKykKICAgICAgICAgICAgaWYoZFtpXVtqXTw9cikgbmV0LmNbaStuXVtqXT1EaW5pYzo6SU5GOwogICAgfQogICAgbmV0Lm49bituKzE7CiAgICBuZXQucz1uK247CiAgICBuZXQudD0wOwogICAgcmV0dXJuIG5ldC5mbG93KCkhPWFsbDsKfQoKaW50IG1haW4oKXsKICAgIHdoaWxlKHNjYW5mKCIlZCIsJm4pPT0xKXsKICAgICAgICB2ZWN0b3I8aW50PiB1OwogICAgICAgIGFsbD0wOwogICAgICAgIGZvcihpbnQgaT0wO2k8bjtpKyspewogICAgICAgICAgICBzY2FuZigiJWQlZCVkJWQlZCIseCtpLHkraSx6K2ksZitpLGwraSk7CiAgICAgICAgICAgIGFsbCs9ZltpXTsKICAgICAgICAgICAgZm9yKGludCBqPTA7ajxpO2orKyl7CiAgICAgICAgICAgICAgICBpbnQgZHg9eFtpXS14W2pdOwogICAgICAgICAgICAgICAgaW50IGR5PXlbaV0teVtqXTsKICAgICAgICAgICAgICAgIGludCBkej16W2ldLXpbal07CiAgICAgICAgICAgICAgICB1LnB1c2hfYmFjayhkW2ldW2pdPWRbal1baV09ZHgqZHgrZHkqZHkrZHoqZHopOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIHNvcnQodS5iZWdpbigpLHUuZW5kKCkpOwogICAgICAgIHUuZXJhc2UodW5pcXVlKHUuYmVnaW4oKSx1LmVuZCgpKSx1LmVuZCgpKTsKICAgICAgICBzaXplX3QgaT1sb3dlcl9ib3VuZCh1LmJlZ2luKCksdS5lbmQoKSwwLGdhbyktdS5iZWdpbigpOwogICAgICAgIGlmKGk9PXUuc2l6ZSgpKSBwdXRzKCItMSIpOyBlbHNlCiAgICAgICAgICAgICAgICAgICAgICAgIHByaW50ZigiJS43ZlxuIixzcXJ0KHVbaV0pKTsKICAgIH0KfQo=