#include <bits/stdc++.h>
using namespace std;
int n, l;
int x[1010], b[1010];
int pre[1010];
double dp[1010];
double solve(double key) {
  for (int i = 1; i <= n; i++) dp[i] = 1e8;
  dp[0] = 0;
  memset(pre, -1, sizeof(pre));
  for (int i = 0; i <= n; i++) {
    for (int j = i + 1; j <= n; j++) {
      double tmp = sqrt(abs(x[j] - x[i] - l)) - key * (b[j]) + dp[i];
      if (dp[j] > tmp) {
        dp[j] = tmp;
        pre[j] = i;
      }
    }
  }
  return dp[n];
}
void out(int k) {
  if (pre[k] >= 1) out(pre[k]);
  printf("%d ", k);
}
int main() {
  scanf("%d%d", &n, &l);
  for (int i = 1; i <= n; i++) scanf("%d%d", &x[i], &b[i]);
  double l = 0, r = 1e6;
  int i = 100;
  while (i--) {
    double mid = (l + r) / 2;
    if (solve(mid) > 0)
      l = mid;
    else
      r = mid;
  }
  out(n);
  return 0;
}
