#include <bits/stdc++.h>
using namespace std;
const double EPS = 1e-9;
struct Point3d {
  double x, y, z;
  Point3d() {}
  Point3d(double x, double y, double z) : x(x), y(y), z(z) {}
  Point3d operator+(Point3d t) { return Point3d(x + t.x, y + t.y, z + t.z); }
  Point3d operator-(Point3d t) { return Point3d(x - t.x, y - t.y, z - t.z); }
  Point3d operator*(double t) { return Point3d(x * t, y * t, z * t); }
  Point3d operator/(double t) { return Point3d(x / t, y / t, z / t); }
};
long double dot(Point3d a, Point3d b) {
  return a.x * (long double)b.x + a.y * (long double)b.y +
         a.z * (long double)b.z;
}
double len(Point3d a) { return sqrt(dot(a, a)); }
double dist(Point3d a, Point3d b) { return len(a - b); }
double proj(Point3d a, Point3d b) { return dot(a, b) / len(b); }
double angle(Point3d a, Point3d b) { return acos(dot(a, b) / len(a) / len(b)); }
Point3d cross(Point3d a, Point3d b) {
  return Point3d(a.y * b.z - a.z * b.y, a.z * b.x - a.x * b.z,
                 a.x * b.y - a.y * b.x);
}
long double triple(Point3d a, Point3d b, Point3d c) {
  return dot(a, cross(b, c));
}
Point3d planeIntersect(Point3d a1, Point3d n1, Point3d a2, Point3d n2,
                       Point3d a3, Point3d n3) {
  Point3d x(n1.x, n2.x, n3.x);
  Point3d y(n1.y, n2.y, n3.y);
  Point3d z(n1.z, n2.z, n3.z);
  Point3d d(dot(a1, n1), dot(a2, n2), dot(a3, n3));
  return Point3d(triple(d, y, z), triple(x, d, z), triple(x, y, d)) /
         triple(n1, n2, n3);
}
struct Sphere {
  double x, y, z, r;
  Sphere() {}
  Sphere(double x, double y, double z, double r) : x(x), y(y), z(z), r(r) {}
};
Sphere minimumCircle(vector<Point3d> vp) {
  Point3d ans(0, 0, 0);
  int n = vp.size();
  for (Point3d p : vp) ans = ans + p;
  ans = ans / n;
  double P = 0.1;
  double d = 0, e = 0;
  for (int i = 0; i < 70000; i++) {
    int f = 0;
    d = dist(ans, vp[0]);
    for (int j = 1; j < n; j++) {
      e = dist(ans, vp[j]);
      if (d < e) {
        d = e;
        f = j;
      }
    }
    ans = ans + (vp[f] - ans) * P;
    P *= 0.998;
  }
  return Sphere(ans.x, ans.y, ans.z, d);
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  int n;
  cin >> n;
  vector<Point3d> vp(n);
  for (int i = 0; i < n; i++) cin >> vp[i].x >> vp[i].y >> vp[i].z;
  Sphere s = minimumCircle(vp);
  cout << fixed << setprecision(12) << s.x << " " << s.y << " " << s.z << endl;
  return 0;
}
