#include <bits/stdc++.h>
using namespace std;
const long long N = 5e3 + 5, mod = 1e9 + 7, inf = 1e9 + 7;
long long n, sss;
struct Point {
  long long x, y;
} a[N];
long long area(Point p, Point q, Point r) {
  long double a1 = sqrtl(1.0 * abs(p.x - q.x) * abs(p.x - q.x) +
                         1.0 * abs(p.y - q.y) * abs(p.y - q.y));
  long double a2 = sqrtl(1.0 * abs(q.x - r.x) * abs(q.x - r.x) +
                         1.0 * abs(q.y - r.y) * abs(q.y - r.y));
  long double a3 = sqrtl(1.0 * abs(r.x - p.x) * abs(r.x - p.x) +
                         1.0 * abs(r.y - p.y) * abs(r.y - p.y));
  long double pp = 0.5 * (a1 + a2 + a3);
  return sqrtl(pp * (pp - a1) * (pp - a2) * (pp - a3));
}
long long orientation(Point p, Point q, Point r) {
  long long val = (q.y - p.y) * (r.x - q.x) - (q.x - p.x) * (r.y - q.y);
  if (val == 0) return 0;
  return (val > 0) ? 1 : 2;
}
vector<Point> convexHull() {
  if (n < 3) {
    return {};
  }
  vector<Point> hull;
  long long l = 0;
  for (long long i = 1; i < n; i++) {
    if (a[i].x < a[l].x) {
      l = i;
    }
  }
  long long p = l, q;
  do {
    hull.push_back(a[p]);
    q = (p + 1) % n;
    for (long long i = 0; i < n; i++) {
      if (orientation(a[p], a[i], a[q]) == 2) {
        q = i;
      }
    }
    p = q;
  } while (p != l);
  return hull;
}
signed main() {
  cin >> n >> sss;
  for (long long i = 0; i < n; i++) {
    cin >> a[i].x >> a[i].y;
  }
  vector<Point> hull = convexHull();
  n = hull.size();
  long long ii = 0, jj = 1, kk = 2, mxii = 0, mxjj = 1, mxkk = 2;
  while (1) {
    long long origjj = jj;
    while (1) {
      long long origkk = kk;
      while (area(hull[ii], hull[jj], hull[kk]) <=
             area(hull[ii], hull[jj], hull[(kk + 1) % n])) {
        kk = (kk + 1) % n;
        if (kk == origkk) {
          break;
        }
      }
      if (area(hull[ii], hull[jj], hull[kk]) <=
          area(hull[ii], hull[(jj + 1) % n], hull[kk])) {
        jj = (jj + 1) % n;
        if (jj == origjj) {
          break;
        }
      } else {
        break;
      }
    }
    if (area(hull[ii], hull[jj], hull[kk]) >
        area(hull[mxii], hull[mxjj], hull[mxkk])) {
      mxii = ii;
      mxjj = jj;
      mxkk = kk;
    }
    ii = (ii + 1) % n;
    if (ii == jj) {
      jj = (jj + 1) % n;
    }
    if (jj == kk) {
      kk = (kk + 1) % n;
    }
    if (ii == 0) {
      break;
    }
  }
  cout << hull[mxii].x - hull[mxjj].x + hull[mxkk].x << ' '
       << hull[mxii].y - hull[mxjj].y + hull[mxkk].y << '\n';
  cout << hull[mxjj].x - hull[mxkk].x + hull[mxii].x << ' '
       << hull[mxjj].y - hull[mxkk].y + hull[mxii].y << '\n';
  cout << hull[mxkk].x - hull[mxii].x + hull[mxjj].x << ' '
       << hull[mxkk].y - hull[mxii].y + hull[mxjj].y << '\n';
}
