#include <bits/stdc++.h>
#pragma GCC optimize("Ofast", "unroll-loops")
using namespace std;
const long long inf = numeric_limits<long long>::max() / 2;
const long double eps = 1e-6;
const long double pi = acos(-1);
inline void solve(), read();
int main() {
  ios_base::sync_with_stdio(0), cin.tie(0), cout.tie(0);
  read();
  solve();
  return 0;
}
const long double MINX = -1e4 - 1;
const long double MAXX = 1e4 + 1;
long long n;
vector<long long> xs, ys, zs;
long double X = 0, Y = 0, Z = 0;
long double check(long double x, long double y, long double z) {
  long double ans = 0;
  for (long long i = 0; i < n; i++) {
    long double x2 = (x - xs[i]) * (x - xs[i]);
    long double y2 = (y - ys[i]) * (y - ys[i]);
    long double z2 = (z - zs[i]) * (z - zs[i]);
    long double cur = sqrt(x2 + y2 + z2);
    (ans) = ((ans) < (cur)) ? (cur) : (ans);
  }
  return ans;
}
long double ztern(long double x, long double y) {
  long double l = MINX, r = MAXX;
  while (abs(r - l) > eps) {
    long double d = (r - l) / 3;
    long double m1 = l + d, m2 = r - d;
    long double a1 = check(x, y, m1);
    long double a2 = check(x, y, m2);
    if (a1 < a2) {
      r = m2;
    } else {
      l = m1;
    }
  }
  Z = l;
  return check(x, y, l);
}
long double ytern(long double x) {
  long double l = MINX, r = MAXX;
  while (abs(r - l) > eps) {
    long double d = (r - l) / 3;
    long double m1 = l + d, m2 = r - d;
    long double a1 = ztern(x, m1);
    long double a2 = ztern(x, m2);
    if (a1 < a2) {
      r = m2;
    } else {
      l = m1;
    }
  }
  Y = l;
  return ztern(x, l);
}
void xtern() {
  long double l = MINX, r = MAXX;
  while (abs(r - l) > eps) {
    long double d = (r - l) / 3;
    long double m1 = l + d, m2 = r - d;
    long double a1 = ytern(m1);
    long double a2 = ytern(m2);
    if (a1 < a2) {
      r = m2;
    } else {
      l = m1;
    }
  }
  X = l;
}
inline void solve() {
  xtern();
  cout << setprecision(40) << fixed;
  cout << X << " " << Y << " " << Z << "\n";
}
inline void read() {
  cin >> n;
  xs.resize(n), ys.resize(n), zs.resize(n);
  for (long long i = 0; i < n; i++) {
    cin >> xs[i] >> ys[i] >> zs[i];
  }
}
