#include <bits/stdc++.h>
using namespace std;
struct point {
  double x = 0.0, y = 0.0, z = 0.0;
};
double dist(point a, point b) {
  return sqrt((a.x - b.x) * (a.x - b.x) + (a.y - b.y) * (a.y - b.y) +
              (a.z - b.z) * (a.z - b.z));
}
int main() {
  int n;
  scanf("%d", &n);
  vector<point> pts(n);
  point p;
  for (int i = 0; i < n; i++) {
    scanf("%lf %lf %lf", &pts[i].x, &pts[i].y, &pts[i].z);
    p.x += pts[i].x / n;
    p.y += pts[i].y / n;
    p.z += pts[i].z / n;
  }
  double aux = 0.1;
  while (aux > 1e-8) {
    int idx = 0;
    double d = 0;
    for (int i = 0; i < n; i++) {
      double _d = dist(p, pts[i]);
      if (d < _d) {
        idx = i;
        d = _d;
      }
    }
    p.x += (pts[idx].x - p.x) * aux;
    p.y += (pts[idx].y - p.y) * aux;
    p.z += (pts[idx].z - p.z) * aux;
    aux *= 0.999;
  }
  printf("%.10lf %.10lf %.10lf\n", p.x, p.y, p.z);
  return 0;
}
