#include <bits/stdc++.h>
using namespace std;
int read() {
  char s;
  int x = 0, f = 1;
  s = getchar();
  while (s < '0' || s > '9') {
    if (s == '-') f = -1;
    s = getchar();
  }
  while (s >= '0' && s <= '9') {
    x *= 10;
    x += s - '0';
    s = getchar();
  }
  return x * f;
}
const int N = 1010;
int n, len;
int x[N], c[N];
double dp[N];
int pre[N];
bool check(double limit) {
  for (int i = 1; i <= n; i++) {
    dp[i] = 1e30;
    for (int j = 0; j < i; j++) {
      double tmp = dp[j] + sqrt(abs(len - (x[i] - x[j]))) - limit * c[i];
      if (tmp < dp[i]) {
        pre[i] = j;
        dp[i] = tmp;
      }
    }
  }
  return dp[n] < 0;
}
int ans[N];
int main() {
  n = read(), len = read();
  for (int i = 1; i <= n; i++) {
    x[i] = read(), c[i] = read();
  }
  double l = 0, r = 1e10;
  while (r - l > 1e-8) {
    double mid = (l + r) / 2;
    if (check(mid))
      r = mid;
    else
      l = mid;
  }
  check(l);
  int cnt = 1;
  int id = n;
  while (id > 0) {
    ans[cnt++] = id;
    id = pre[id];
  }
  for (int i = cnt - 1; i > 0; i--) {
    printf("%d ", ans[i]);
  }
}
