#include <bits/stdc++.h>
using namespace std;
int n;
double l, x[1111], b[1111], dif[1111];
int par[1111];
bool check(double r) {
  dif[0] = 0.;
  for (int i = 1; i <= n; i++) {
    dif[i] = -1e9;
    for (int j = 0; j < i; j++) {
      double tmp = dif[j] + r * b[i] - sqrt(fabs(x[i] - x[j] - l));
      if (tmp > dif[i]) dif[i] = tmp, par[i] = j;
    }
  }
  return (dif[n] >= 0.0);
}
int main() {
  cin >> n >> l;
  for (int i = 1; i <= n; i++) cin >> x[i] >> b[i];
  double lo = 0, hi = 1e9, md;
  for (int i = 0; i < 100; i++) {
    md = (lo + hi) / 2;
    if (check(md))
      hi = md;
    else
      lo = md;
  }
  vector<int> v;
  v.push_back(n);
  while (par[v.back()] != 0) v.push_back(par[v.back()]);
  while (v.size()) cout << v.back() << ' ', v.pop_back();
  cout << endl;
  return 0;
}
