#include <bits/stdc++.h>
using namespace std;
inline void read(int &x) {
  int v = 0, f = 1;
  char c = getchar();
  while (!isdigit(c) && c != '-') c = getchar();
  if (c == '-')
    f = -1;
  else
    v = (c & 15);
  while (isdigit(c = getchar())) v = (v << 1) + (v << 3) + (c & 15);
  x = v * f;
}
inline void read(long long &x) {
  long long v = 0ll, f = 1ll;
  char c = getchar();
  while (!isdigit(c) && c != '-') c = getchar();
  if (c == '-')
    f = -1;
  else
    v = (c & 15);
  while (isdigit(c = getchar())) v = (v << 1) + (v << 3) + (c & 15);
  x = v * f;
}
inline void readc(char &x) {
  char c;
  while (((c = getchar()) == ' ') || c == '\n')
    ;
  x = c;
}
long long m, res;
int n, i, j, k, cnt, tp;
struct ii {
  int x, y;
} a[5005], stk[5005], b[5005], s1, s2, s3, sm;
bool cmp(ii x, ii y) {
  if (x.x == y.x) return x.y > y.y;
  return x.x < y.x;
}
ii operator-(ii x, ii y) { return (ii){x.x - y.x, x.y - y.y}; }
ii operator+(ii x, ii y) { return (ii){x.x + y.x, x.y + y.y}; }
long long crs(ii x, ii y) { return 1ll * x.x * y.y - 1ll * x.y * y.x; }
int main() {
  read(n);
  read(m);
  for (((i)) = (1); ((i)) <= ((n)); ((i))++) {
    read(a[i].x);
    read(a[i].y);
  }
  sort(a + 1, a + n + 1, cmp);
  for (((i)) = (1); ((i)) <= ((n)); ((i))++) {
    while (tp > 1 && crs(stk[tp] - stk[tp - 1], a[i] - stk[tp]) >= 0) {
      tp--;
    }
    stk[++tp] = a[i];
  }
  for (((i)) = (1); ((i)) <= ((tp - 1)); ((i))++) b[++cnt] = stk[i];
  tp = 0;
  for (((i)) = ((n)); ((i)) >= (1); ((i))--) {
    while (tp > 1 && crs(stk[tp] - stk[tp - 1], a[i] - stk[tp]) >= 0) {
      tp--;
    }
    stk[++tp] = a[i];
  }
  for (((i)) = (1); ((i)) <= ((tp - 1)); ((i))++) b[++cnt] = stk[i];
  b[cnt + 1] = b[1];
  for (((i)) = (1); ((i)) <= ((cnt - 2)); ((i))++) {
    k = i + 2;
    for (j = i + 1; j <= cnt - 1; j++) {
      while (k <= cnt && crs(b[k] - b[i], b[j] - b[i]) <=
                             crs(b[k + 1] - b[i], b[j] - b[i])) {
        k++;
      }
      if (crs(b[k] - b[i], b[j] - b[i]) > res) {
        res = crs(b[k] - b[i], b[j] - b[i]);
        s1 = b[i];
        s2 = b[j];
        s3 = b[k];
      }
    }
  }
  sm = s1 + s2 + s3;
  s1 = sm - s1 - s1;
  s2 = sm - s2 - s2;
  s3 = sm - s3 - s3;
  printf("%d %d\n", s1.x, s1.y);
  printf("%d %d\n", s2.x, s2.y);
  printf("%d %d\n", s3.x, s3.y);
  return 0;
}
