#include <bits/stdc++.h>
using namespace std;
int const INF = (int)1e9 + 1e3;
long long const INFL = (long long)1e18 + 1e6;
mt19937 tw(chrono::high_resolution_clock::now().time_since_epoch().count());
uniform_int_distribution<long long> ll_distr;
long long rnd(long long a, long long b) {
  return ll_distr(tw) % (b - a + 1) + a;
}
void solve() {
  int n;
  cin >> n;
  vector<pair<int, int> > points;
  vector<int> arrx, arry;
  for (int i = 0; i < n * 4 + 1; ++i) {
    int x, y;
    cin >> x >> y;
    points.push_back({x, y});
    arrx.push_back(x);
    arry.push_back(y);
  }
  sort(arrx.begin(), arrx.end());
  arrx.erase(unique(arrx.begin(), arrx.end()), arrx.end());
  sort(arry.begin(), arry.end());
  arry.erase(unique(arry.begin(), arry.end()), arry.end());
  for (int x1 : arrx) {
    for (int x2 : arrx) {
      if (x2 <= x1) {
        continue;
      }
      for (int y1 : arry) {
        int y2 = y1 + (x2 - x1);
        auto it = lower_bound(arry.begin(), arry.end(), y2);
        if (it == arry.end() || *it != y2) {
          continue;
        }
        int cnt = 0;
        int any = -1;
        for (int i = 0; i < ((int)points.size()); ++i) {
          auto [x, y] = points[i];
          if ((x == x1 && y1 <= y && y <= y2) ||
              (x == x2 && y1 <= y && y <= y2) ||
              (y == y1 && x1 <= x && x <= x2) ||
              (y == y2 && x1 <= x && x <= x2)) {
          } else {
            ++cnt;
            any = i;
            if (cnt > 1) {
              break;
            }
          }
        }
        if (cnt == 1) {
          cout << points[any].first << " " << points[any].second << "\n";
          return;
        }
      }
    }
  }
}
int main() {
  cout << setprecision(15) << fixed;
  ios::sync_with_stdio(false);
  cin.tie(nullptr);
  int test_count = 1;
  for (int test = 1; test <= test_count; ++test) {
    solve();
  }
}
