#include <bits/stdc++.h>
using namespace std;
const double pi = 2 * acos(0.);
template <class TT>
TT abs(TT a) {
  if (a < 0) return -a;
  return a;
}
template <class ZZ>
ZZ max(ZZ a, ZZ b, ZZ c) {
  return max(a, max(b, c));
}
template <class ZZ>
ZZ min(ZZ a, ZZ b, ZZ c) {
  return min(a, min(b, c));
}
typedef struct {
  long double x, y, z;
} P;
P p[100], Max, Min, f;
int n;
long double F(long double x, long double y, long double z) {
  int i;
  long double mx = 0;
  for (i = 0; i < n; i++)
    mx = max(mx, ((p[i].x - x) * (p[i].x - x)) + ((p[i].y - y) * (p[i].y - y)) +
                     ((p[i].z - z) * (p[i].z - z)));
  return mx;
}
long double FZ(long double x, long double y) {
  long double lx = Min.z, rx = Max.z, lp, rp, a, b;
  int i;
  for (i = 0; i < 50; i++) {
    lp = (2 * lx + rx) / 3.0;
    rp = (lx + 2 * rx) / 3.0;
    a = F(x, y, lp);
    b = F(x, y, rp);
    if (a < b)
      rx = rp;
    else
      lx = lp;
  }
  f.z = lp;
  return a;
}
long double FY(long double x) {
  long double lx = Min.y, rx = Max.y, lp, rp, a, b;
  int i;
  for (i = 0; i < 50; i++) {
    lp = (2 * lx + rx) / 3.0;
    rp = (lx + 2 * rx) / 3.0;
    a = FZ(x, lp);
    b = FZ(x, rp);
    if (a < b)
      rx = rp;
    else
      lx = lp;
  }
  f.y = lp;
  return a;
}
void NestedTernarySearch() {
  long double lx = Min.x, rx = Max.x, lp, rp, a, b;
  int i;
  for (i = 0; i < 50; i++) {
    lp = (2 * lx + rx) / 3.0;
    rp = (lx + 2 * rx) / 3.0;
    a = FY(lp);
    b = FY(rp);
    if (a < b)
      rx = rp;
    else
      lx = lp;
  }
  f.x = lp;
}
int main() {
  int i, j, k, tks, ks = 1, m, l, o;
  double x, y, z;
  while (cin >> n) {
    for (i = 0; i < n; i++) {
      cin >> p[i].x >> p[i].y >> p[i].z;
      if (!i) {
        Max = p[i];
        Min = p[i];
        continue;
      }
      Max.x = max(Max.x, p[i].x);
      Max.y = max(Max.y, p[i].y);
      Max.z = max(Max.z, p[i].z);
      Min.x = min(Min.x, p[i].x);
      Min.y = min(Min.y, p[i].y);
      Min.z = min(Min.z, p[i].z);
    }
    NestedTernarySearch();
    x = f.x;
    y = f.y;
    z = f.z;
    printf("%.8lf %.8lf %.8lf\n", x, y, z);
  }
  return 0;
}
