#include <bits/stdc++.h>
#pragma GCC optimize("Ofast,no-stack-protector")
#pragma GCC optimize("unroll-loops")
#pragma GCC optimize("fast-math")
#pragma GCC target("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx,avx,tune=native")
using namespace std;
int x[2000], y[2000];
vector<pair<int, int>> a;
long long S;
void pr(int vrt, int A, int B) {
  cout << x[vrt] + A << " " << y[vrt] + B << endl;
}
void Tr(int i, int j, int p, int A, int B) {
  long long X =
      (long long)x[j] * (long long)y[p] - (long long)x[p] * (long long)y[j];
  if ((X == S) | (X == -S)) {
    cout << "Yes" << endl;
    pr(i, 0, 0);
    pr(j, A, B);
    pr(p, A, B);
    exit(0);
  }
}
mt19937 rnd(2674324);
signed main() {
  int n;
  cin >> n >> S;
  S <<= 1;
  int ss = S;
  a.resize(n);
  for (int i = 0; i < n; i++) cin >> a[i].first >> a[i].second;
  sort(a.begin(), a.end());
  a.resize(unique(a.begin(), a.end()) - a.begin());
  shuffle(a.begin(), a.end(), rnd);
  for (int i = 0; i < n; ++i) x[i] = a[i].first, y[i] = a[i].second;
  n = min(n, 1940);
  for (int i = 0; i < n; i++) {
    for (int j = i + 1; j < n; j++) {
      x[j] -= x[i], y[j] -= y[i];
    }
    for (int j = i + 1; j < n; j++) {
      for (int p = j + 1; p < n; p++) {
        int X = x[j] * y[p] - x[p] * y[j];
        if ((X == ss) | (X == -ss)) {
          Tr(i, j, p, x[i], y[i]);
        }
      }
    }
    for (int j = i + 1; j < n; j++) {
      x[j] += x[i], y[j] += y[i];
    }
  }
  cout << "No";
}
