#include <bits/stdc++.h>
using namespace std;
double dp[1005];
int d[1005], p[1005], n, l;
int pre[1005];
double check(double x) {
  int i, j;
  double tmp;
  memset(pre, 0, sizeof(pre));
  for (i = 1; i <= n; i++) {
    dp[i] = 1e10;
    for (j = 0; j < i; j++)
      if (dp[j] + sqrt(abs(1.0 * d[i] - d[j] - l)) - x * p[i] < dp[i]) {
        dp[i] = dp[j] + sqrt(abs(1.0 * d[i] - d[j] - l)) - x * p[i];
        pre[i] = j;
      }
  }
  return dp[n];
}
void Print(int x) {
  if (pre[x] != 0) {
    Print(pre[x]);
    printf(" %d", x);
  } else
    printf("%d", x);
}
int main() {
  int i;
  scanf("%d%d", &n, &l);
  memset(pre, 0, sizeof(pre));
  dp[0] = 0.0;
  for (i = 1; i <= n; i++) scanf("%d%d", &d[i], &p[i]);
  double left = 0.0, right = 10000000000.0;
  while (right - left > 1e-12) {
    double mid = (left + right) / 2.0;
    if (check(mid) > 1e-12)
      left = mid;
    else
      right = mid;
  }
  Print(n);
}
