#include <bits/stdc++.h>
using namespace std;
int n;
double ans = 1e10;
struct point {
  int a, b, c;
  void get() { scanf("%d%d%d", &a, &b, &c); }
};
point p[5001];
double di(int i, int j) {
  return sqrt((p[i].a - p[j].a) * (p[i].a - p[j].a) +
              (p[i].b - p[j].b) * (p[i].b - p[j].b) +
              (p[i].c - p[j].c) * (p[i].c - p[j].c));
}
int main() {
  scanf("%d", &n);
  for (int i = 0; i < n; i++) p[i].get();
  for (int i = 1; i < n; i++)
    for (int j = i + 1; j < n; j++)
      ans = min(ans, di(i, j) + di(0, i) + di(0, j));
  printf("%.12lf\n", ans / 2);
  return 0;
}
