#include <bits/stdc++.h>
using namespace std;
double fi = (sqrt(5.) - 1) / 2;
int it = 80;
int n, i, j;
double x[103], y[103], z[103];
double c[3], ans[3], d;
double f(double *c) {
  double r, res = 0;
  int i;
  for (i = 0; i < n; ++i) {
    r = ((c[0] - x[i]) * (c[0] - x[i])) + ((c[1] - y[i]) * (c[1] - y[i])) +
        ((c[2] - z[i]) * (c[2] - z[i]));
    if (r > res) res = r;
  }
  if (res < d) {
    d = res;
    for (i = 0; i < 3; ++i) ans[i] = c[i];
  }
  return res;
}
double ts_gs(int i) {
  double l, r, p1, p2, f1, f2;
  if (i == 3) {
    return f(c);
  } else {
    l = -1e4 - 1;
    r = 1e4 + 1;
    p1 = r - (r - l) * fi;
    c[i] = p1;
    f1 = ts_gs(i + 1);
    p2 = l + (r - l) * fi;
    c[i] = p2;
    f2 = ts_gs(i + 1);
    for (int k = it; k; --k) {
      if (f1 > f2) {
        l = p1;
        p1 = p2;
        f1 = f2;
        p2 = l + (r - l) * fi;
        c[i] = p2;
        f2 = ts_gs(i + 1);
      } else {
        r = p2;
        p2 = p1;
        f2 = f1;
        p1 = r - (r - l) * fi;
        c[i] = p1;
        f1 = ts_gs(i + 1);
      }
    }
    return f1 < f2 ? f1 : f2;
  }
}
double ts_d3(int i) {
  double l, r, p1, p2, f1, f2;
  if (i == 3) {
    return f(c);
  } else {
    l = -1e4 - 1;
    r = 1e4 + 1;
    for (int k = it; k; --k) {
      p1 = l + (r - l) / 3;
      c[i] = p1;
      f1 = ts_d3(i + 1);
      p2 = r - (r - l) / 3;
      c[i] = p2;
      f2 = ts_d3(i + 1);
      if (f1 > f2)
        l = p1;
      else
        r = p2;
    }
    return f1 < f2 ? f1 : f2;
  }
}
int main() {
  cin >> n;
  for (i = 0; i < n; ++i) cin >> x[i] >> y[i] >> z[i];
  d = 1e18;
  ts_d3(0);
  for (i = 0; i < 3; ++i) printf("%.10lf ", ans[i]);
  return 0;
}
