#include <bits/stdc++.h>
using namespace std;
double p[103][3];
double ansx, ansy, ansz;
int n;
double check(double x, double y, double z) {
  double ans = 0;
  double tmp;
  for (int i = 0; i < n; i++) {
    tmp = (x - p[i][0]) * (x - p[i][0]) + (y - p[i][1]) * (y - p[i][1]) +
          (z - p[i][2]) * (z - p[i][2]);
    ans = max(ans, tmp);
  }
  return ans;
}
double check1(double x, double y) {
  double stz = -1e4;
  double enz = 1e4;
  double ret;
  for (int tz = 0; tz < 65; tz++) {
    double mz1 = (stz * 2 + enz) / 3;
    double mz2 = (stz + enz * 2) / 3;
    double f1 = check(x, y, mz1);
    double f2 = check(x, y, mz2);
    if (f1 < f2)
      enz = mz2;
    else
      stz = mz1;
    ret = f1;
  }
  ansz = stz;
  return ret;
}
double check2(double x) {
  double sty = -1e4;
  double eny = 1e4;
  double ret;
  for (int ty = 0; ty < 65; ty++) {
    double my1 = (sty * 2 + eny) / 3;
    double my2 = (sty + eny * 2) / 3;
    double f1 = check1(x, my1);
    double f2 = check1(x, my2);
    if (f1 < f2)
      eny = my2;
    else
      sty = my1;
    ret = f1;
  }
  ansy = sty;
  return ret;
}
void check3() {
  double stx = -1e4;
  double enx = 1e4;
  for (int tx = 0; tx < 65; tx++) {
    double mx1 = (stx * 2 + enx) / 3;
    double mx2 = (stx + enx * 2) / 3;
    double f1 = check2(mx1);
    double f2 = check2(mx2);
    if (f1 < f2)
      enx = mx2;
    else
      stx = mx1;
  }
  ansx = stx;
}
int main() {
  cout << fixed << setprecision(9);
  cin >> n;
  for (int i = 0; i < n; i++) {
    cin >> p[i][0] >> p[i][1] >> p[i][2];
  }
  check3();
  cout << ansx << " " << ansy << " " << ansz << endl;
  return 0;
}
