#include <bits/stdc++.h>
using namespace std;
const int N = 1005;
const double inf = 1e9;
int n, m, x[N], b[N], pre[N];
double dp[N];
bool check(double mid) {
  for (int i = 1; i <= n; i++) dp[i] = inf;
  for (int i = 0; i <= n; i++) {
    for (int j = i + 1; j <= n; j++) {
      double tmp = dp[i] + sqrt(abs(x[j] - x[i] - m)) - 1.0 * mid * b[j];
      if (dp[j] > tmp) {
        dp[j] = tmp;
        pre[j] = i;
      }
    }
  }
  return dp[n] >= 0;
}
void prnt(int x) {
  if (x == 0) return;
  prnt(pre[x]);
  printf("%d ", x);
}
int main() {
  scanf("%d%d", &n, &m);
  for (int i = 1; i <= n; i++) scanf("%d%d", &x[i], &b[i]);
  double l = 0.0, r = 1e5;
  while (r - l > 1e-8) {
    double mid = (l + r) / 2;
    if (check(mid))
      l = mid;
    else
      r = mid;
  }
  prnt(n);
  return printf("\n"), 0;
}
