#include <bits/stdc++.h>
using namespace std;
const int maxn = 5002;
int n;
pair<long long, long long> a[maxn];
template <typename T>
inline T abs(const T x) {
  return x < 0 ? -x : x;
}
inline long long getArea(const pair<long long, long long> &a,
                         const pair<long long, long long> &b,
                         const pair<long long, long long> &c) {
  return abs((b.first - a.first) * (c.second - a.second) -
             (b.second - a.second) * (c.first - a.first));
}
inline long long getArea(int p, int q, int r) {
  return getArea(a[p], a[q], a[r]);
}
void _find(int &p, int &q, int &r) {
  long long area = getArea(p, q, r);
  for (int i = 1; i <= n; ++i) {
    if (i == p || i == q || i == r) continue;
    long long pq = getArea(p, q, i);
    long long pr = getArea(p, r, i);
    long long qr = getArea(q, r, i);
    if (pq > area && pq >= pr && pq >= qr)
      r = i;
    else if (pr > area && pr >= pq && pr >= qr)
      q = i;
    else if (qr > area)
      p = i;
    else
      continue;
    _find(p, q, r);
    return;
  }
}
int main() {
  scanf("%d%*d", &n);
  for (int i = 1; i <= n; ++i) scanf("%lld%lld", &a[i].first, &a[i].second);
  int p = 1, q = 2, r = 3;
  _find(p, q, r);
  printf("%lld %lld\n%lld %lld\n%lld %lld\n",
         a[r].first + a[q].first - a[p].first,
         a[r].second + a[q].second - a[p].second,
         a[r].first + a[p].first - a[q].first,
         a[r].second + a[p].second - a[q].second,
         a[p].first + a[q].first - a[r].first,
         a[p].second + a[q].second - a[r].second);
  return 0;
}
