#include <bits/stdc++.h>
using namespace std;
vector<long double> xyz;
long double last_ans = 1000000000;
long double a[100][3];
int n;
long double check(long double &x, long double &y, long double &z) {
  long double ans = 0;
  for (int i = 0; i < n; ++i) {
    ans = max((a[i][0] - x) * (a[i][0] - x) + (a[i][1] - y) * (a[i][1] - y) +
                  (a[i][2] - z) * (a[i][2] - z),
              ans);
  }
  if (ans < last_ans) {
    xyz = {x, y, z};
    last_ans = ans;
  }
  return ans;
}
long double f2(long double &x, long double &y) {
  long double l = -10000;
  long double r = 10000;
  for (int i = 0; i < 70; ++i) {
    long double z1 = l + (r - l) / 3;
    long double z2 = l + (r - l) / 1.5;
    if (check(x, y, z1) < check(x, y, z2)) {
      r = z2;
    } else {
      l = z1;
    }
  }
  return check(x, y, l);
}
long double f1(long double &x) {
  long double l = -10000;
  long double r = 10000;
  for (int i = 0; i < 70; ++i) {
    long double y1 = l + (r - l) / 3;
    long double y2 = l + (r - l) / 1.5;
    if (f2(x, y1) < f2(x, y2)) {
      r = y2;
    } else {
      l = y1;
    }
  }
  return f2(x, l);
}
signed main() {
  cin >> n;
  for (int i = 0; i < n; ++i) {
    cin >> a[i][0] >> a[i][1] >> a[i][2];
  }
  long double l = -10000;
  long double r = 10000;
  for (int i = 0; i < 70; ++i) {
    long double x1 = l + (r - l) / 3;
    long double x2 = l + (r - l) / 1.5;
    if (f1(x1) < f1(x2)) {
      r = x2;
    } else {
      l = x1;
    }
  }
  cout << xyz[0] << " " << xyz[1] << " " << xyz[2];
}
