#include <bits/stdc++.h>
using namespace std;
bool debug = 0;
int n, m, k;
int dx[4] = {0, 1, 0, -1}, dy[4] = {1, 0, -1, 0};
string direc = "RDLU";
long long ln, lk, lm;
void etp(bool f = 0) {
  puts(f ? "YES" : "NO");
  exit(0);
}
void addmod(int& x, int y, int mod = 1000000007) {
  x += y;
  if (x >= mod) x -= mod;
}
void et() {
  puts("-1");
  exit(0);
}
struct Point {
  long long x, y;
  Point() {}
  Point(long long x, long long y) : x(x), y(y) {}
  Point operator+(const Point& o) const { return Point(x + o.x, y + o.y); }
  Point operator-(const Point& o) const { return Point(x - o.x, y - o.y); }
  long long cross(Point b) const { return x * b.y - b.x * y; }
  void readin() { scanf("%lld%lld", &x, &y); }
  void pp() { printf("%lld %lld\n", x, y); }
} p[5005];
long long cal(int i, int j, int k) {
  return abs((p[j] - p[i]).cross(p[k] - p[i]));
}
void fmain() {
  scanf("%d%lld", &n, &ln);
  for (int(i) = 1; (i) <= (int)(n); (i)++) {
    p[i].readin();
  }
  int a = 1, b = 2, c = 3;
  while (1) {
    long long s = cal(a, b, c);
    bool fg = 0;
    for (int(i) = 1; (i) <= (int)(n); (i)++) {
      if (cal(i, b, c) > s) {
        a = i;
        fg = 1;
        break;
      }
      if (cal(a, i, c) > s) {
        b = i;
        fg = 1;
        break;
      }
      if (cal(a, b, i) > s) {
        c = i;
        fg = 1;
        break;
      }
    }
    if (fg == 0) break;
  }
  (p[a] + p[b] - p[c]).pp();
  (p[a] - p[b] + p[c]).pp();
  (p[b] + p[c] - p[a]).pp();
}
int main() {
  fmain();
  return 0;
}
