#include <bits/stdc++.h>
using namespace std;
class Obj {
 public:
  long long i, j;
  int ind;
  long double ang;
  Obj(long long a, long long b, int d, long double c) {
    i = a;
    j = b;
    ind = d;
    ang = c;
  }
  bool operator<(const Obj &o) const { return ang < o.ang; }
};
long long x[2000];
long long y[2000];
long double area(long double x1, long double y1, long double x2, long double y2,
                 long double x3, long double y3) {
  long double ret =
      (x2 - x1) * (y2 + y1) + (x3 - x2) * (y2 + y3) + (x1 - x3) * (y1 + y3);
  return ret / 2.0;
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  int n;
  long double s;
  cin >> n >> s;
  vector<Obj> li;
  for (int i = 0; i < n; i++) {
    cin >> x[i] >> y[i];
  }
  long double eps = 0.1;
  for (int i = 0; i < n; i++) {
    for (int j = 0; j < n; j++) {
      if (i == j) {
        continue;
      }
      li.push_back(Obj(i, j, 69, atan2(y[j] - y[i], x[j] - x[i])));
    }
  }
  sort(li.begin(), li.end());
  long double start = 0.6969694242;
  vector<Obj> li2;
  long double sx = cos(start) * 696969.0;
  long double sy = sin(start) * 696969.0;
  int pos[n];
  for (int i = 0; i < n; i++) {
    li2.push_back(Obj(x[i], y[i], i, area(0.0, 0.0, sy, sx, y[i], x[i])));
  }
  int ar[n];
  sort(li2.begin(), li2.end());
  for (int i = 0; i < n; i++) {
    pos[li2[i].ind] = i;
    ar[i] = li2[i].ind;
  }
  int first = 0;
  long double best = li[0].ang - start;
  for (int i = 1; i < li.size(); i++) {
    long double now = li[i].ang - start;
    if (best < 0.0 && now > 0.0) {
      best = now;
      first = i;
    } else if (now > 0.0 && now < best) {
      first = i;
      best = now;
    }
  }
  for (int i = first; i < li.size(); i++) {
    int a = (int)li[i].i;
    int b = (int)li[i].j;
    swap(pos[a], pos[b]);
    swap(ar[pos[a]], ar[pos[b]]);
    int lo = max(pos[a], pos[b]) + 1;
    int hi = n - 1;
    while (lo <= hi) {
      int mid = (lo + hi) / 2;
      long double are =
          abs(area(y[a], x[a], y[b], x[b], y[ar[mid]], x[ar[mid]]));
      if (abs(are - s) < eps) {
        cout << "Yes" << endl;
        cout << x[a] << " " << y[a] << endl;
        cout << x[b] << " " << y[b] << endl;
        cout << x[ar[mid]] << " " << y[ar[mid]] << endl;
        return 0;
      }
      if (are > s) {
        hi = mid - 1;
      } else {
        lo = mid + 1;
      }
    }
    lo = 0;
    hi = min(pos[a], pos[b]) - 1;
    while (lo <= hi) {
      int mid = (lo + hi) / 2;
      long double are =
          abs(area(y[a], x[a], y[b], x[b], y[ar[mid]], x[ar[mid]]));
      if (abs(are - s) < eps) {
        cout << "Yes" << endl;
        cout << x[a] << " " << y[a] << endl;
        cout << x[b] << " " << y[b] << endl;
        cout << x[ar[mid]] << " " << y[ar[mid]] << endl;
        return 0;
      }
      if (are > s) {
        lo = mid + 1;
      } else {
        hi = mid - 1;
      }
    }
  }
  for (int i = 0; i < first; i++) {
    int a = (int)li[i].i;
    int b = (int)li[i].j;
    swap(pos[a], pos[b]);
    swap(ar[pos[a]], ar[pos[b]]);
    int lo = max(pos[a], pos[b]) + 1;
    int hi = n - 1;
    while (lo <= hi) {
      int mid = (lo + hi) / 2;
      long double are =
          abs(area(y[a], x[a], y[b], x[b], y[ar[mid]], x[ar[mid]]));
      if (abs(are - s) < eps) {
        cout << "Yes" << endl;
        cout << x[a] << " " << y[a] << endl;
        cout << x[b] << " " << y[b] << endl;
        cout << x[ar[mid]] << " " << y[ar[mid]] << endl;
        return 0;
      }
      if (are > s) {
        hi = mid - 1;
      } else {
        lo = mid + 1;
      }
    }
    lo = 0;
    hi = min(pos[a], pos[b]) - 1;
    while (lo <= hi) {
      int mid = (lo + hi) / 2;
      long double are =
          abs(area(y[a], x[a], y[b], x[b], y[ar[mid]], x[ar[mid]]));
      if (abs(are - s) < eps) {
        cout << "Yes" << endl;
        cout << x[a] << " " << y[a] << endl;
        cout << x[b] << " " << y[b] << endl;
        cout << x[ar[mid]] << " " << y[ar[mid]] << endl;
        return 0;
      }
      if (are > s) {
        lo = mid + 1;
      } else {
        hi = mid - 1;
      }
    }
  }
  cout << "No" << endl;
}
