#include <bits/stdc++.h>
using namespace std;
int n;
pair<long long, long long> P[5678];
int a, b, c;
vector<int> hull;
pair<long long, long long> operator-(const pair<long long, long long>& a,
                                     const pair<long long, long long>& b) {
  return make_pair(a.first - b.first, a.second - b.second);
}
long long operator*(const pair<long long, long long>& a,
                    const pair<long long, long long>& b) {
  return a.first * b.second - a.second * b.first;
}
void loda() {
  long long s;
  cin >> n >> s;
  for (int i = 0; i < n; ++i) {
    cin >> P[i].first >> P[i].second;
  }
}
void convexHull() {
  sort(P, P + n);
  for (int i = 0; i < n; ++i) {
    while (hull.size() > 1 && (P[hull[hull.size() - 2]] - P[hull.back()]) *
                                      (P[i] - P[hull.back()]) <=
                                  0) {
      hull.pop_back();
    }
    hull.push_back(i);
  }
  for (int i = n - 2; i >= 0; --i) {
    while (hull.back() != n - 1 && (P[hull[hull.size() - 2]] - P[hull.back()]) *
                                           (P[i] - P[hull.back()]) <=
                                       0) {
      hull.pop_back();
    }
    hull.push_back(i);
  }
  hull.pop_back();
}
void debug() {
  return;
  cerr << endl;
  for (int ind : hull) {
    cerr << P[ind].first << " " << P[ind].second << endl;
  }
  cerr << endl;
}
long long surf(int a, int b, int c) {
  return abs((P[b] - P[a]) * (P[c] - P[a]));
}
void maxTriangle(int p, int& a, int& b, int& c) {
  if (p > hull.size() - 3) {
    a = 0;
    b = 1;
    c = 2;
    return;
  }
  a = hull[p];
  b = hull[1 + p];
  c = hull[2 + p];
  long long maxi = surf(a, b, c);
  int i2 = p + 2;
  for (int i = p + 1; i < hull.size() - 1; ++i) {
    long long tmp = surf(hull[p], hull[i], hull[i2]);
    while (i2 < hull.size() - 1 && tmp < surf(hull[p], hull[i], hull[i2 + 1])) {
      ++i2;
      tmp = surf(hull[p], hull[i], hull[i2]);
    }
    if (tmp > maxi) {
      b = hull[i];
      c = hull[i2];
      maxi = tmp;
    }
  }
}
void maxTriangle() {
  a = 0;
  b = 1;
  c = 2;
  int d, e, f;
  for (int i = 0; i < hull.size(); ++i) {
    maxTriangle(i, d, e, f);
    if (surf(a, b, c) < surf(d, e, f)) {
      a = d;
      b = e;
      c = f;
    }
  }
}
int main() {
  ios_base::sync_with_stdio(0);
  loda();
  convexHull();
  debug();
  maxTriangle();
  cout << P[a].first + P[b].first - P[c].first << " "
       << P[a].second + P[b].second - P[c].second << endl;
  cout << P[a].first - P[b].first + P[c].first << " "
       << P[a].second - P[b].second + P[c].second << endl;
  cout << -P[a].first + P[b].first + P[c].first << " "
       << -P[a].second + P[b].second + P[c].second << endl;
}
