#include <bits/stdc++.h>
using namespace std;
inline long long read() {
  long long x = 0, f = 1;
  char ch = getchar();
  while (ch < '0' || ch > '9') {
    if (ch == '-') f = -1;
    ch = getchar();
  }
  while (ch >= '0' && ch <= '9') {
    x = x * 10 + ch - '0';
    ch = getchar();
  }
  return x * f;
}
inline void write(long long a) {
  if (a < 0) {
    printf("-");
    a = -a;
  }
  if (a >= 10) write(a / 10);
  putchar(a % 10 + '0');
}
inline void writeln(long long a) {
  write(a);
  printf("\n");
}
long long n, k;
struct point {
  long long x, y;
} p[100010];
int a, b, c;
point operator+(point a, point b) { return (point){a.x + b.x, a.y + b.y}; }
point operator-(point a, point b) { return (point){a.x - b.x, a.y - b.y}; }
inline long long calc(int a, int b, int c) {
  long long x1 = p[c].x - p[a].x, y1 = p[c].y - p[a].y, x2 = p[b].x - p[a].x,
            y2 = p[b].y - p[a].y;
  long long ans = x1 * y2 - x2 * y1;
  if (ans < 0) ans = -ans;
  return ans;
}
int main() {
  n = read();
  k = read();
  for (int i = 1; i <= n; i++) p[i].x = read(), p[i].y = read();
  a = 1;
  b = 2;
  c = 3;
  bool refresh = 0;
  while (!refresh) {
    refresh = 1;
    for (int i = 1; i <= n; i++)
      if (i != a && i != b && i != c) {
        if (calc(a, b, c) < calc(i, b, c))
          a = i, refresh = 0;
        else if (calc(a, b, c) < calc(a, i, c))
          b = i, refresh = 0;
        else if (calc(a, b, c) < calc(a, b, i))
          c = i, refresh = 0;
      }
  }
  point d = p[a] + p[b] - p[c], e = p[a] + p[c] - p[b], f = p[c] + p[b] - p[a];
  printf("%lld %lld\n", d.x, d.y);
  printf("%lld %lld\n", e.x, e.y);
  printf("%lld %lld\n", f.x, f.y);
}
