#include <bits/stdc++.h>
using namespace std;
int n, L, nid;
double pos[100020], bea[100020], sty[100020], ans[100020];
double dp[100020];
inline bool best(double r) {
  memset(sty, 0, sizeof(sty));
  for (int i = 1; i <= n; i++) dp[i] = 1e10 + 10;
  for (int i = 1; i <= n; i++) {
    for (int j = 0; j < i; j++) {
      double tmp = dp[j] + sqrt(abs(L - (pos[i] - pos[j]))) - r * bea[i];
      if (tmp < dp[i]) {
        sty[i] = j;
        dp[i] = tmp;
      }
    }
  }
  return dp[n] > 0;
}
int main() {
  cin >> n >> L;
  for (int i = 1; i <= n; i++) {
    cin >> pos[i] >> bea[i];
  }
  double l = 0.0, r = 1e10 + 10;
  while (r - l > 1e-8) {
    double m = (l + r) / 2;
    if (best(m)) {
      l = m;
    } else
      r = m;
  }
  best(l);
  for (int i = n; i; i = sty[i]) ans[++nid] = i;
  for (int i = nid; i; i--) {
    cout << ans[i] << " ";
  }
  return 0;
}
