#include <bits/stdc++.h>
using namespace std;
const int N = 2005;
pair<int, int> po[N];
int n;
long long SS;
long long xx(pair<int, int> a, pair<int, int> b, int zt) {
  if (!zt)
    return a.first * b.second - a.second * b.first;
  else
    return 1LL * a.first * b.second - 1LL * a.second * b.first;
}
int main() {
  scanf("%d%lld", &n, &SS);
  SS <<= 1;
  int S = SS;
  for (int i = (0); i < (n); i++) scanf("%d%d", &po[i].first, &po[i].second);
  for (int i = (0); i < (n); i++) {
    for (int j = (i + 1); j < (n); j++)
      po[j].first -= po[i].first, po[j].second -= po[i].second;
    for (int j = (i + 1); j < (n); j++)
      for (int k = (j + 1); k < (n); k++) {
        int s = xx(po[j], po[k], 0);
        long long ss = xx(po[j], po[k], 1);
        if ((s == S || s == -S) && (ss == SS || ss == -SS)) {
          printf("Yes\n");
          printf("%d %d\n", po[i].first, po[i].second);
          printf("%d %d\n", po[j].first + po[i].first,
                 po[j].second + po[i].second);
          printf("%d %d\n", po[k].first + po[i].first,
                 po[k].second + po[i].second);
          return 0;
        }
      }
    for (int j = (i + 1); j < (n); j++)
      po[j].first += po[i].first, po[j].second += po[i].second;
  }
  puts("No");
  return 0;
}
