#include <bits/stdc++.h>
using namespace std;
int n, l;
int x[1005], b[1005];
int par[1005];
double dp[1005];
bool solve(double m) {
  memset(par, -1, sizeof par);
  for (int i = 1; i <= n; i++) dp[i] = 1e20;
  for (int i = 1; i <= n; i++) {
    for (int j = 0; j < i; j++) {
      if (dp[i] > dp[j] + sqrt(fabs(x[i] - x[j] - l) + 0.0) - m * b[i]) {
        dp[i] = dp[j] + sqrt(fabs(x[i] - x[j] - l) + 0.0) - m * b[i];
        par[i] = j;
      }
    }
  }
  if (dp[n] < 0.0) return true;
  return false;
}
void print(int x) {
  if (x <= 0) return;
  print(par[x]);
  cout << x << " ";
}
int main() {
  cin >> n >> l;
  for (int i = 1; i <= n; i++) {
    cin >> x[i] >> b[i];
  }
  double lft = 0;
  double rgt = 1e10;
  while ((rgt - lft) > 1e-9) {
    double m = (lft + rgt) / 2.0;
    if (solve(m))
      rgt = m;
    else
      lft = m;
  }
  solve(rgt);
  print(n);
  return 0;
}
