#include <bits/stdc++.h>
using namespace std;
const int N = 1005;
double dp[N];
int a[N], b[N], l, n, tot;
int p[N], pre[N];
bool check(double x) {
  dp[0] = 0;
  for (int i = (int)(1); i <= (int)(n); ++i) dp[i] = 1e100;
  for (int i = (int)(1); i <= (int)(n); ++i) {
    for (int j = (int)(0); j <= (int)(i - 1); ++j) {
      if (dp[j] + sqrt(fabs(a[i] - a[j] - l)) < dp[i]) {
        dp[i] = dp[j] + sqrt(fabs(a[i] - a[j] - l));
        pre[i] = j;
      }
    }
    dp[i] -= x * b[i];
  }
  int tmp = n;
  tot = 0;
  while (tmp) {
    p[tot++] = tmp;
    tmp = pre[tmp];
  }
  reverse(p, p + tot);
  return dp[n] <= 0;
}
int main() {
  ios ::sync_with_stdio(0);
  cin >> n >> l;
  for (int i = (int)(1); i <= (int)(n); ++i) cin >> a[i] >> b[i];
  double l = 0.0, r = 1e4;
  for (int cnt = 0; cnt < (int)(100); ++cnt) {
    double mid = (l + r) / 2.0;
    if (check(mid))
      r = mid;
    else
      l = mid;
  }
  check(l);
  for (int i = 0; i < (int)(tot); ++i) {
    cout << p[i] << " \n"[i == tot - 1];
  }
  return 0;
}
