#include <bits/stdc++.h>
using namespace std;
int n, l;
double dp[1005];
int x[1005], b[1005];
int pre[1005];
bool check(double mid) {
  memset(pre, 0, sizeof(pre));
  dp[0] = 0;
  for (int i = 1; i <= n; ++i) {
    dp[i] = (double)sqrt(abs(x[i] - l)) - mid * (double)b[i];
    for (int j = 1; j < i; ++j) {
      double tmp = (double)sqrt(abs(x[i] - x[j] - l)) - mid * (double)b[i];
      if (dp[j] + tmp < dp[i] + 1e-8) {
        dp[i] = dp[j] + tmp;
        pre[i] = j;
      }
    }
  }
  if (dp[n] < 1e-8) {
    return true;
  }
  return false;
}
void print(int cur) {
  if (cur == 0) {
    return;
  }
  print(pre[cur]);
  printf("%d", cur);
  if (cur == n) {
    cout << endl;
  } else {
    cout << " ";
  }
}
int main() {
  while (cin >> n >> l) {
    for (int i = 1; i <= n; ++i) {
      scanf("%d%d", x + i, b + i);
    }
    double l = 0, r = 1e9;
    while (fabs(l - r) > 1e-8) {
      double mid = (l + r) * 0.5;
      if (check(mid)) {
        r = mid;
      } else {
        l = mid;
      }
    }
    print(n);
  }
  return 0;
}
