#include <bits/stdc++.h>
using namespace std;
const int NN = 1010;
const double eps = 1e-7;
double dis[NN][NN];
int x[NN], b[NN], pre[NN], id[NN];
int n, l;
vector<int> ans;
double dp[NN];
bool smax(double &a, double b) {
  if (a > b + eps) return false;
  a = b;
  return true;
}
bool can(double val) {
  for (int i = 1; i <= n; i++) {
    dp[i] = 1.0 * b[i] * val - dis[0][i];
    pre[i] = 0;
    for (int j = 1; j < i; j++) {
      if (smax(dp[i], dp[j] + 1.0 * b[i] * val - dis[j][i])) {
        pre[i] = j;
      }
    }
  }
  return dp[n] > eps;
}
int main() {
  cin >> n >> l;
  for (int i = 1; i <= n; i++) {
    scanf("%d %d", x + i, b + i);
  }
  for (int i = 1; i <= n; i++) {
    for (int j = 0; j < i; j++) {
      dis[j][i] = sqrt(fabs(x[i] - x[j] - l));
    }
  }
  double st = 0.0, ed = dis[0][n] / b[n];
  for (int i = 19; i--;) {
    double md = (st + ed) / 2.0;
    if (can(md))
      ed = md;
    else
      st = md;
  }
  int nn = 0;
  for (int u = n; u; u = pre[u]) id[++nn] = u;
  for (int i = nn; i; i--) printf("%d ", id[i]);
  return 0;
}
