#include <bits/stdc++.h>
using namespace std;
struct Points {
  long double x, y;
};
vector<Points> pt;
vector<int> H;
int n;
long double s;
long double dis(long long x, long long y) {
  long double val1 = abs(pt[x].x - pt[y].x) * abs(pt[x].x - pt[y].x);
  long double val2 = abs(pt[x].y - pt[y].y) * abs(pt[x].y - pt[y].y);
  return sqrt(val1 + val2);
}
long double Area(long double x, long double y, long double z) {
  long double p = dis(x, y) + dis(y, z) + dis(z, x);
  p = p * 0.50;
  return sqrt(p) * sqrt(p - dis(x, y)) * sqrt(p - dis(y, z)) *
         sqrt(p - dis(z, x));
}
bool cmp(const Points &a, const Points &b) {
  if (a.x != b.x)
    return a.x < b.x;
  else
    return a.y < b.y;
}
long double ccw(long long x, long long y, long long z) {
  return (pt[z].x - pt[y].x) * (pt[y].y - pt[x].y) -
         (pt[z].y - pt[y].y) * (pt[y].x - pt[x].x);
}
void monotone() {
  vector<int> U, L;
  for (int i = 0; i < pt.size(); i++) {
    while (U.size() >= 2 && ccw(U[U.size() - 2], U[U.size() - 1], i) <= 0)
      U.pop_back();
    U.push_back(i);
  }
  for (int i = pt.size() - 1; i >= 0; i--) {
    while (L.size() >= 2 && ccw(L[L.size() - 2], L[L.size() - 1], i) <= 0)
      L.pop_back();
    L.push_back(i);
  }
  for (int i = 0; i < U.size(); i++) H.push_back(U[i]);
  for (int i = 1; i <= L.size() - 2; i++) H.push_back(L[i]);
}
int main() {
  cin >> n >> s;
  for (int i = 1; i <= n; i++) {
    long double x, y;
    cin >> x >> y;
    pt.push_back({x, y});
  }
  sort(pt.begin(), pt.end(), cmp);
  monotone();
  int i = 0, j = 1, k = 2;
  int A = 0, B = 1, C = 2;
  while (i < H.size()) {
    while (1) {
      while (Area(H[i], H[j], H[k]) < Area(H[i], H[j], H[(k + 1) % H.size()])) {
        k = (k + 1) % H.size();
      }
      if (Area(H[i], H[j], H[k]) < Area(H[i], H[(j + 1) % H.size()], H[k])) {
        j = (j + 1) % H.size();
        continue;
      }
      break;
    }
    if (Area(H[A], H[B], H[C]) < Area(H[i], H[j], H[k])) {
      A = i;
      B = j;
      C = k;
    }
    i++;
    if (i == j) j = (j + 1) % H.size();
    if (j == k) k = (k + 1) % H.size();
  }
  cout << (long long)(pt[H[B]].x + pt[H[A]].x - pt[H[C]].x) << " "
       << (long long)(pt[H[B]].y + pt[H[A]].y - pt[H[C]].y) << "\n";
  cout << (long long)(pt[H[C]].x + pt[H[A]].x - pt[H[B]].x) << " "
       << (long long)(pt[H[C]].y + pt[H[A]].y - pt[H[B]].y) << "\n";
  cout << (long long)(pt[H[C]].x + pt[H[B]].x - pt[H[A]].x) << " "
       << (long long)(pt[H[C]].y + pt[H[B]].y - pt[H[A]].y) << "\n";
}
