#include <bits/stdc++.h>
using namespace std;
struct tdd {
  int x, y, z;
} td[5005];
int n;
double res = 1000000000;
double sqr(int a) { return a * a; }
double kc(int v1, int v2) {
  return sqrt(sqr(td[v1].x - td[v2].x) + sqr(td[v1].y - td[v2].y) +
              sqr(td[v1].z - td[v2].z));
}
double tinh(int v1, int v2) {
  double d1 = kc(0, v1);
  double d2 = kc(0, v2);
  return max(d1, d2) + (kc(v1, v2) - max(d1 - d2, d2 - d1)) / 2;
}
int main() {
  cin >> n;
  for (int i = 0; i < n; i++) cin >> td[i].x >> td[i].y >> td[i].z;
  for (int i = 1; i < n; i++)
    for (int j = i + 1; j < n; j++) res = min(res, tinh(i, j));
  printf("%.7lf", res);
  return 0;
}
