#include <bits/stdc++.h>
using namespace std;
struct PT {
  double x, y, z;
  PT() {}
  PT(double x, double y, double z) : x(x), y(y), z(z) {}
  PT operator+(const PT &a) const { return PT(x + a.x, y + a.y, z + a.z); }
  PT operator-(const PT &a) const { return PT(x - a.x, y - a.y, z - a.z); }
  PT operator*(const double a) const { return PT(x * a, y * a, z * a); }
  PT operator/(const double a) const { return PT(x / a, y / a, z / a); }
  void scan() { scanf("%lf %lf %lf", &x, &y, &z); }
  double val() { return sqrt(x * x + y * y + z * z); }
};
double dist(PT a, PT b) { return (a - b).val(); }
int main() {
  int n;
  scanf("%d", &n);
  PT ara[n];
  PT sum(0, 0, 0);
  for (int i = 0; i < n; i++) {
    ara[i].scan();
    sum = sum + ara[i];
  }
  sum = sum / n;
  double ans = 0;
  for (int i = 0; i < n; i++) ans = max(ans, dist(ara[i], sum));
  int cnt = 100000;
  double val = 0.1;
  for (int i = 0; i < cnt; i++) {
    double d = -1;
    PT a;
    for (int j = 0; j < n; j++) {
      if (dist(sum, ara[j]) > d) {
        d = dist(sum, ara[j]), a = ara[j];
      }
    }
    ans = min(ans, d);
    sum = sum + (a - sum) * (val);
    val *= .998;
  }
  printf("%.10f %.10f %.10f\n", sum.x, sum.y, sum.z);
  return 0;
}
