#include <bits/stdc++.h>
using namespace std;
using LL = long long int;
struct point {
  LL x, y;
  point(LL x_ = 0, LL y_ = 0) : x(x_), y(y_) {}
  point operator-(const point& b) { return point(x - b.x, y - b.y); }
  point operator+(const point& b) { return point(x + b.x, y + b.y); }
};
LL cross_abs(const point& a, const point& b) {
  return abs(a.x * b.y - b.x * a.y);
}
bool mult(const point& sp, const point& ep, const point& op) {
  return (sp.x - op.x) * (ep.y - op.y) >= (ep.x - op.x) * (sp.y - op.y);
}
bool operator<(const point& l, const point& r) {
  return (l.y < r.y) || (l.y == r.y && l.x < r.x);
}
int graham(point pnt[], int n, point res[]) {
  int i = 0, len = 0, k = 0, top = 1;
  sort(pnt, pnt + n);
  if (n == 0) return 0;
  res[0] = pnt[0];
  if (n == 1) return 1;
  res[1] = pnt[1];
  if (n == 2) return 2;
  res[2] = pnt[2];
  for (i = 2; i < n; i++) {
    while (top && mult(pnt[i], res[top], res[top - 1])) top--;
    res[++top] = pnt[i];
  }
  len = top;
  res[++top] = pnt[n - 2];
  for (i = n - 3; i >= 0; i--) {
    while (top != len && mult(pnt[i], res[top], res[top - 1])) top--;
    res[++top] = pnt[i];
  }
  return top;
}
int n = 0;
LL ss = 0;
const int maxn = 5e3 + 5;
point p[maxn], cp[maxn];
LL maxs = 0;
int ansa = 0, ansb = 0, ansc = 0;
int main(void) {
  scanf("%d %lld", &n, &ss);
  for (int i = 0; i < n; ++i) scanf("%lld %lld", &p[i].x, &p[i].y);
  int cnt = graham(p, n, cp);
  for (int i = 0; i < cnt; ++i)
    for (int j = i + 1, k = j < cnt - 1 ? j + 1 : 0; j < cnt && k != i; ++j) {
      while (cross_abs(cp[j] - cp[i], cp[k] - cp[i]) -
                 cross_abs(cp[j] - cp[i], cp[k + 1] - cp[i]) <
             0)
        k = k < cnt - 1 ? k + 1 : 1;
      if (k != i && k != j) {
        LL tmp = cross_abs(cp[j] - cp[i], cp[k] - cp[i]);
        if (tmp > maxs) maxs = tmp, ansa = i, ansb = j, ansc = k;
      }
    }
  point a = cp[ansa] - cp[ansb] + cp[ansc];
  point b = cp[ansa] + cp[ansb] - cp[ansc];
  point c = cp[ansb] + cp[ansc] - cp[ansa];
  printf("%lld %lld\n", a.x, a.y);
  printf("%lld %lld\n", b.x, b.y);
  printf("%lld %lld\n", c.x, c.y);
  return 0;
}
