#include <bits/stdc++.h>
#pragma GCC target("arch=corei7-avx")
using namespace std;
inline long long read() {
  register long long x = 0;
  char zf = 1;
  char ch;
  while (ch != '-' && !isdigit(ch)) ch = getchar();
  if (ch == '-') zf = -1, ch = getchar();
  while (isdigit(ch)) x = x * 10 + ch - '0', ch = getchar();
  return x * zf;
}
void write(long long y) {
  if (y < 0) putchar('-'), y = -y;
  if (y > 9) write(y / 10);
  putchar(y % 10 + 48);
}
void writeln(const long long y) {
  write(y);
  putchar('\n');
}
struct vec {
  long long x, y;
} p[2055];
inline long long det(vec a, vec b) { return a.x * b.y - a.y * b.x; }
long long f[2055][2055];
int main() {
  int n = read();
  const long long s = read() * 2;
  for (register int i = 0; i < n; ++i) {
    p[i].x = read();
    p[i].y = read();
  }
  for (register int i = 0; i < n; ++i)
    for (register int j = 0; j < n; ++j) f[i][j] = det(p[i], p[j]);
  for (register int i = 0; i < n; ++i)
    for (register int j = 0; j < i; ++j) {
      const long long u = s - f[i][j];
      const long long v = -s - f[i][j];
      for (register int k = 0; k < j;) {
        long long w = f[j][k] - f[i][k];
        if (w == u || w == v) {
          puts("Yes");
          printf("%lld %lld\n", p[i].x, p[i].y);
          printf("%lld %lld\n", p[j].x, p[j].y);
          printf("%lld %lld\n", p[k].x, p[k].y);
          exit(0);
        }
        k++;
        w = f[j][k] - f[i][k];
        if (w == u || w == v) {
          puts("Yes");
          printf("%lld %lld\n", p[i].x, p[i].y);
          printf("%lld %lld\n", p[j].x, p[j].y);
          printf("%lld %lld\n", p[k].x, p[k].y);
          exit(0);
        }
        k++;
        w = f[j][k] - f[i][k];
        if (w == u || w == v) {
          puts("Yes");
          printf("%lld %lld\n", p[i].x, p[i].y);
          printf("%lld %lld\n", p[j].x, p[j].y);
          printf("%lld %lld\n", p[k].x, p[k].y);
          exit(0);
        }
        k++;
      }
    }
  puts("No");
}
