#include <bits/stdc++.h>
using std::max;
using std::min;
using std::pair;
using std::vector;
struct poi {
  int x, y;
};
struct squ {
  int x, y, r;
};
int n;
vector<poi> ar;
bool isdif(poi a, poi b, poi c) {
  if (a.x != b.x && a.y != b.y && a.x != c.x && a.y != c.y && b.x != c.x &&
      b.y != c.y)
    return 1;
  else
    return 0;
}
squ getsqu(poi a, poi b, poi c) {
  squ g;
  g.x = a.x;
  g.y = a.y;
  int xmax = a.x, ymax = a.y;
  xmax = max(xmax, b.x);
  xmax = max(xmax, c.x);
  ymax = max(ymax, b.y);
  ymax = max(ymax, c.y);
  g.y = min(g.y, b.y);
  g.y = min(g.y, c.y);
  g.x = min(g.x, b.x);
  g.x = min(g.x, c.x);
  g.r = max(xmax - g.x, ymax - g.y);
  return g;
}
pair<bool, poi> getpoi(squ a) {
  int i = 0;
  poi t;
  for (auto &e : ar) {
    if ((e.x == a.x && e.y >= a.y && e.y <= a.y + a.r) ||
        (e.x == a.x + a.r && e.y >= a.y && e.y <= a.y + a.r))
      ;
    else if ((e.y == a.y && e.x >= a.x && e.x <= a.x + a.r) ||
             (e.y == a.y + a.r && e.x >= a.x && e.x <= a.x + a.r))
      ;
    else
      ++i, t = e;
  }
  if (i == 1)
    return {1, t};
  else
    return {0, t};
}
int i[3];
poi findpoi(void) {
  for (i[0] = 0; i[0] < ar.size(); ++i[0])
    for (i[1] = i[0] + 1; i[1] < ar.size(); ++i[1])
      for (i[2] = i[1] + 1; i[2] < ar.size(); ++i[2]) {
        if (isdif(ar[i[0]], ar[i[1]], ar[i[2]])) {
          squ t = getsqu(ar[i[0]], ar[i[1]], ar[i[2]]);
          pair<bool, poi> te = getpoi(t);
          if (!te.first) continue;
          return te.second;
        }
      }
  return {0, 0};
}
int main(void) {
  poi t, te;
  scanf("%d", &n);
  int lim = 4 * n + 1;
  for (int i = 0; i < lim; ++i) scanf("%d%d", &t.x, &t.y), ar.push_back(t);
  te = findpoi();
  printf("%d %d", te.x, te.y);
  return 0;
}
