#include <bits/stdc++.h>
using namespace std;
template <typename T>
void chmin(T &x, const T &y) {
  if (x > y) x = y;
}
template <typename T>
void chmax(T &x, const T &y) {
  if (x < y) x = y;
}
int read() {
  char c;
  while ((c = getchar()) < '-')
    ;
  if (c == '-') {
    int x = (c = getchar()) - '0';
    while ((c = getchar()) >= '0') x = x * 10 + c - '0';
    return -x;
  }
  int x = c - '0';
  while ((c = getchar()) >= '0') x = x * 10 + c - '0';
  return x;
}
const int N = 2000 + 5, M = 2000000 + 5;
struct Point {
  int x, y;
};
Point operator-(const Point &a, const Point &b) {
  return (Point){a.x - b.x, a.y - b.y};
}
long long operator*(const Point &a, const Point &b) {
  return (long long)a.x * b.y - (long long)b.x * a.y;
}
Point p[N];
struct Edge {
  Point p;
  int i, j;
};
Edge e[M];
Point qp[N];
int q[N], id[N];
int n;
void check(const Edge &e, long long s) {
  Point np = e.p;
  s += np * p[e.i];
  int l = 0, r = n;
  while (l + 1 != r) {
    int mid = (l + r) / 2;
    if (np * qp[mid] >= s)
      r = mid;
    else
      l = mid;
  }
  if (np * qp[r] == s) {
    puts("Yes");
    auto P = [&](const Point &p) { printf("%d %d\n", p.x, p.y); };
    P(p[e.i]);
    P(p[e.j]);
    P(qp[r]);
    exit(0);
  }
}
int main() {
  long long s;
  cin >> n >> s;
  s *= 2;
  for (int i = 1; i <= n; ++i) {
    p[i].x = read();
    p[i].y = read();
  }
  sort(p + 1, p + n + 1, [&](const Point &a, const Point &b) {
    return a.x != b.x ? a.x < b.x : a.y < b.y;
  });
  int tot = 0;
  for (int i = 1; i <= n; ++i)
    for (int j = i + 1; j <= n; ++j) e[++tot] = (Edge){p[j] - p[i], i, j};
  sort(e + 1, e + tot + 1,
       [&](const Edge &a, const Edge &b) { return a.p * b.p > 0; });
  for (int i = 1; i <= n; ++i) q[i] = i;
  for (int i = 1; i <= n; ++i) {
    qp[i] = p[q[i]];
    id[q[i]] = i;
  }
  for (int h = 1; h <= tot; ++h) {
    int j = e[h].j, i = e[h].i;
    while (id[j] > id[i]) {
      int k = q[id[j] - 1];
      id[k] = id[j];
      q[id[j]] = k;
      qp[id[j]] = qp[id[k]];
      --id[j];
    }
    q[id[j]] = j;
    qp[id[j]] = p[j];
    q[id[i]] = i;
    qp[id[i]] = p[i];
    check(e[h], s);
  }
  puts("No");
}
