#include <bits/stdc++.h>
using namespace std;
const long long inf = (long long)1e18;
const long long mod = (long long)1e9 + 7;
const double eps = (double)1e-9;
const double pi = acos(-1.0);
const int dx[] = {0, 0, 1, 0, -1};
const int dy[] = {0, 1, 0, -1, 0};
const int N = 5005;
long long s, mx;
int n, m;
bool found;
struct pt {
  long long x, y;
  pt(){};
  pt(long long a, long long b) : x(a), y(b){};
  inline void in() { cin >> x >> y; }
  inline void out() {
    assert(-(long long)1e9 <= min(x, y) && max(x, y) <= (long long)1e9);
    cout << x << " " << y << endl;
  }
  inline pt operator+(pt p) { return pt(x + p.x, y + p.y); }
  inline pt operator-(pt p) { return pt(x - p.x, y - p.y); }
  inline long long operator*(pt p) { return x * p.x + y * p.y; }
  inline long long operator%(pt p) { return x * p.y - y * p.x; }
  inline long long dist(pt p) {
    return ((x - p.x + 0ll) * (x - p.x)) + ((y - p.y + 0ll) * (y - p.y));
  }
  inline long long area(pt p1, pt p2) {
    pt cur = pt(x, y);
    return abs((p1 - cur) % (p2 - cur));
  }
  inline bool operator<(pt p) const {
    return (y < p.y || (y == p.y && x < p.x));
  }
  inline bool operator!=(pt p) { return (x != p.x || y != p.y); }
} a, b, c, p[N], ch[N];
inline bool cmp(pt p1, pt p2) {
  if ((p1 - p[1]) % (p2 - p[1]) == 0) return p[1].dist(p1) < p[1].dist(p2);
  return (p1 - p[1]) % (p2 - p[1]) > 0;
}
int main() {
  cin >> n >> s;
  for (int i = 1; i <= n; i++) p[i].in();
  sort(p + 1, p + 1 + n);
  sort(p + 2, p + 1 + n, &cmp);
  for (int i = 1; i <= n; i++) {
    while (m >= 2 && (p[i] - ch[m - 1]) % (ch[m] - ch[m - 1]) >= 0) m--;
    ch[++m] = p[i];
  }
  assert(m >= 3);
  for (int i = 1; i + 2 <= m; i++) {
    int k = i + 2;
    for (int j = i + 1; j + 1 <= m; j++) {
      k = max(k, j + 1);
      while (k < m && ch[k].area(ch[i], ch[j]) <= ch[k + 1].area(ch[i], ch[j]))
        k++;
      assert(i != j && j != k && i != k);
      assert(ch[i] != ch[j] && ch[j] != ch[k] && ch[i] != ch[k]);
      if (ch[k].area(ch[i], ch[j]) > mx) {
        mx = ch[k].area(ch[i], ch[j]);
        a = ch[i];
        b = ch[j];
        c = ch[k];
        found = 1;
      }
    }
  }
  assert(found);
  pt d = a + b - c;
  pt e = a + c - b;
  pt f = c + b - a;
  d.out();
  e.out();
  f.out();
  return 0;
}
