#include <bits/stdc++.h>
using namespace std;
int n, L;
int x[1100], b[1100];
double f[1100];
int pre[1100];
double calc(double mid) {
  memset(f, 0x7f, sizeof(f));
  f[0] = 0;
  for (int i = 1; i <= n; i++) {
    for (int j = 0; j < i; j++) {
      if (f[i] > f[j] + sqrt(abs(x[i] - x[j] - L)) - mid * b[i])
        f[i] = f[j] + sqrt(abs(x[i] - x[j] - L)) - mid * b[i], pre[i] = j;
    }
  }
  return f[n];
}
void out(int x) {
  if (pre[x]) out(pre[x]);
  printf("%d ", x);
}
int main() {
  int i, j, k;
  scanf("%d%d", &n, &L);
  for (i = 1; i <= n; i++) {
    scanf("%d%d", x + i, b + i);
  }
  double l = 0, r = 1e10;
  while (fabs(r - l) > 1e-10) {
    double mid = (l + r) / 2;
    if (calc(mid) > 0)
      l = mid;
    else
      r = mid;
  }
  out(n);
  return 0;
}
