#include <bits/stdc++.h>
using namespace std;
int n, L;
int cx[1005], d[1005];
int pre[1005];
double f[1005];
double cost[1005][1005];
const double eps = 1e-7;
double calc(double kk) {
  f[0] = 0;
  for (int i = 1; i <= n; i++) {
    f[i] = (int)1e9;
    for (int j = 0; j < i; j++) {
      double tmp = f[i];
      f[i] = min(f[i], f[j] + cost[j][i] - ((double)d[i] * kk));
      if (f[i] < tmp) {
        pre[i] = j;
      }
    }
  }
  return f[n];
}
void print(int id) {
  if (!id) return;
  print(pre[id]);
  printf("%d ", id);
}
int main() {
  scanf("%d%d", &n, &L);
  for (int i = 1; i <= n; i++) {
    scanf("%d%d", cx + i, d + i);
  }
  for (int i = 0; i <= n; i++) {
    for (int j = i + 1; j <= n; j++) {
      cost[i][j] = sqrt(abs((cx[j] - cx[i]) - L));
    }
  }
  double L = 0, R = 1e6;
  while (abs(R - L) >= eps) {
    double mid = (R + L) / 2.0;
    if (calc(mid) + eps < 0) {
      R = mid;
    } else {
      L = mid;
    }
  }
  double mid = (L + R) / 2.0;
  calc(mid);
  print(n);
  return 0;
}
