#include <bits/stdc++.h>
using namespace std;
const int maxN = 10010;
double a[maxN], b[maxN];
int N, L;
double f[maxN], jc[maxN];
bool check(double m) {
  for (int i = 1; i <= N; i++) f[i] = 1e9, jc[i] = 0;
  for (int i = 1; i <= N; i++) {
    for (int x = 0; x <= i - 1; x++) {
      double t = sqrt(fabs(a[i] - a[x] - L)) - m * b[i] + f[x];
      if (t < f[i]) {
        f[i] = t;
        jc[i] = x;
      }
    }
  }
  return f[N] < 0;
}
int ans[maxN], cnt;
int main() {
  scanf("%d%d", &N, &L);
  for (int i = 1; i <= N; i++) scanf("%lf%lf", a + i, b + i);
  double l = 0, r = 1e9;
  while (abs(l - r) > 1e-9) {
    double mid = (l + r) / 2;
    if (check(mid))
      r = mid;
    else
      l = mid;
  }
  int iter = N;
  while (jc[iter]) {
    ans[++cnt] = iter;
    iter = jc[iter];
  }
  ans[++cnt] = iter;
  for (int i = cnt; i >= 1; i--) cout << ans[i] << " ";
}
