#include <bits/stdc++.h>
using namespace std;
vector<pair<long long int, long long int>> a;
vector<int> ind;
long long int s;
int area(int i, int j, int k) {
  pair<long long int, long long int> x = a[i], y = a[j], z = a[k];
  long long int ar = x.first * y.second + y.first * z.second +
                     z.first * x.second - x.first * z.second -
                     z.first * y.second - y.first * x.second;
  ar = abs(ar);
  if (ar == s)
    return 0;
  else if (ar < s)
    return -1;
  else
    return 1;
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(NULL);
  cout.tie(NULL);
  int n, m, i, j, k;
  cin >> n >> s;
  s *= 2;
  a.resize(n);
  for (i = 0; i < n; i++) cin >> a[i].first >> a[i].second;
  sort(a.begin(), a.end());
  ind.resize(n);
  vector<pair<double, pair<int, int>>> rotation;
  for (i = 0; i < n; i++) {
    ind[i] = i;
    for (j = i + 1; j < n; j++) {
      int x = a[j].first - a[i].first;
      int y = a[j].second - a[i].second;
      if (x == 0)
        rotation.push_back({90.000000, {i, j}});
      else
        rotation.push_back({atan(y * 1.0000 / x), {i, j}});
    }
  }
  sort(rotation.begin(), rotation.end());
  vector<int> ans;
  for (auto ang : rotation) {
    pair<int, int> rot = ang.second;
    swap(ind[rot.first], ind[rot.second]);
    rot.first = ind[rot.first];
    rot.second = ind[rot.second];
    swap(a[rot.first], a[rot.second]);
    int l = 0, r = min(rot.first, rot.second) - 1;
    while (l <= r) {
      int md = l + (r - l) / 2;
      int tri = area(md, rot.first, rot.second);
      if (tri == 0) {
        ans.push_back(md);
        break;
      } else if (tri == -1)
        r = md - 1;
      else
        l = md + 1;
    }
    if (l <= r) {
      ans.push_back(rot.first);
      ans.push_back(rot.second);
      break;
    }
    l = max(rot.first, rot.second) + 1, r = n - 1;
    while (l <= r) {
      int md = l + (r - l) / 2;
      int tri = area(md, rot.first, rot.second);
      if (tri == 0) {
        ans.push_back(md);
        break;
      } else if (tri == -1)
        l = md + 1;
      else
        r = md - 1;
    }
    if (l <= r) {
      ans.push_back(rot.first);
      ans.push_back(rot.second);
      break;
    }
  }
  if (ans.size() == 3) {
    cout << "Yes" << endl;
    for (auto i : ans) cout << a[i].first << " " << a[i].second << endl;
  } else
    cout << "No" << endl;
}
