#include <bits/stdc++.h>
using namespace std;
const double eps = 1e-6;
const int maxp = 5e4 + 10;
int sgn(double x) {
  if (fabs(x) < eps) return 0;
  return x < 0 ? -1 : 1;
}
struct Point {
  long long x, y;
  Point() {}
  Point(long long _x, long long _y) : x(_x), y(_y) {}
  Point operator-(const Point& _p) const { return Point(x - _p.x, y - _p.y); }
  Point operator+(const Point& _p) const { return Point(x + _p.x, y + _p.y); }
  long long operator*(const Point& _p) const { return x * _p.x + y * _p.y; }
  long long operator^(const Point& _p) const { return x * _p.y - y * _p.x; }
  bool operator==(const Point& _p) const { return x == _p.x && y == _p.y; }
  long long cal(long long x, long long y) { return sqrt(x * x + y * y); };
  bool operator<(const Point& _p) const {
    return x == _p.x ? y < _p.y : x < _p.x;
  }
  long long distance(Point p) { return cal(x - p.x, y - p.y); }
} p[maxp], P[maxp];
long long cross(Point a, Point b, Point c) { return (b - a) ^ (c - a); }
int n, top;
void getconvex() {
  sort(p, p + n);
  n = unique(p, p + n) - p;
  top = 0;
  for (int i = 0; i < n; ++i) {
    while (top > 1 && cross(P[top - 2], P[top - 1], p[i]) <= 0) --top;
    P[top++] = p[i];
  }
  int temp = top;
  for (int i = n - 2; i >= 0; --i) {
    while (top > temp && cross(P[top - 2], P[top - 1], p[i]) <= 0) --top;
    P[top++] = p[i];
  }
  if (n > 1) top--;
}
Point ra, rb, rc;
Point A, B, C;
long long S;
long long Rotating3() {
  if (top == 1 || top == 2) return 0;
  long long ans = 0;
  for (int i = 0; i < top; i++) {
    int j = (i + 1) % top, k = (i + 2) % top;
    while (j != i && k != i) {
      if (ans < abs(cross(P[i], P[j], P[k]))) {
        ans = abs(cross(P[i], P[j], P[k]));
        ra = P[i], rb = P[j], rc = P[k];
      }
      while (((P[i] - P[j]) ^ (P[(k + 1) % top] - P[k])) < 0) k = (k + 1) % top;
      j = (j + 1) % top;
    }
  }
  return ans;
}
int main() {
  scanf("%d%lld", &n, &S);
  for (int i = 0; i < n; ++i) {
    scanf("%lld%lld", &p[i].x, &p[i].y);
  }
  getconvex();
  Rotating3();
  A = ra + rb - rc;
  B = ra + rc - rb;
  C = rc + rb - ra;
  printf("%lld %lld\n", A.x, A.y);
  printf("%lld %lld\n", B.x, B.y);
  printf("%lld %lld\n", C.x, C.y);
  return 0;
}
