#include <bits/stdc++.h>
using namespace std;
const int N = 5005;
struct point {
  int x, y;
  point() {}
  point(int _x, int _y) : x(_x), y(_y) {}
  inline friend point operator-(const point &a, const point &b) {
    return point(a.x - b.x, a.y - b.y);
  }
  inline friend point operator+(const point &a, const point &b) {
    return point(a.x + b.x, a.y + b.y);
  }
  inline friend long long operator*(const point &a, const point &b) {
    return 1ll * a.x * b.y - 1ll * a.y * b.x;
  }
} p[N], A, B, C;
int n, top;
long long S;
inline long long area(int i, int j, int k) {
  return abs((p[j] - p[i]) * (p[k] - p[i]));
}
int main() {
  scanf("%d%lld", &n, &S);
  for (int i = 1; i <= n; i++) scanf("%d%d", &p[i].x, &p[i].y);
  int a = 1, b = 2, c = 3;
  bool bz = 1;
  S = area(a, b, c);
  while (bz) {
    bz = 0;
    for (int i = 1; i <= n; i++) {
      long long tmp;
      tmp = area(a, b, i);
      if (tmp > S) S = tmp, c = i, bz = 1;
      tmp = area(a, i, c);
      if (tmp > S) S = tmp, b = i, bz = 1;
      tmp = area(i, b, c);
      if (tmp > S) S = tmp, a = i, bz = 1;
    }
  }
  A = p[a] + (p[b] - p[c]), B = p[b] + (p[c] - p[a]), C = p[c] + (p[a] - p[b]);
  printf("%d %d\n%d %d\n%d %d\n", A.x, A.y, B.x, B.y, C.x, C.y);
  return 0;
}
