#include <bits/stdc++.h>
using namespace std;
int i, j, k, L, n, m, P[1010], x[1010], last, t = 50, pa[1100];
double dis[1010][1010];
double l, r, mid, a[1010];
void go(int h) {
  if (h == 0) return;
  go(pa[h]);
  cout << h << " ";
}
int main() {
  cin >> n >> L;
  for (i = 1; i <= n; i++) {
    cin >> x[i] >> P[i];
  }
  for (i = 0; i <= n; i++) {
    for (j = i + 1; j <= n; j++) {
      dis[i][j] = sqrt(abs(L - (x[j] - x[i])));
    }
  }
  l = 0;
  r = dis[0][n] / P[n] + 1;
  while (t--) {
    mid = (l + r) * 0.5;
    for (i = 1; i <= n; i++) {
      a[i] = -pow(10, 15);
      for (j = 0; j < i; j++) a[i] = max(a[i], a[j] - dis[j][i]);
      a[i] += P[i] * mid;
    }
    if (a[n] > -0.000001)
      r = mid;
    else
      l = mid;
  }
  mid = l;
  for (i = 1; i <= n; i++) {
    a[i] = -pow(10, 15);
    for (j = 0; j < i; j++)
      if (a[i] < a[j] - dis[j][i]) {
        a[i] = a[j] - dis[j][i];
        pa[i] = j;
      }
    a[i] += P[i] * mid;
  }
  go(n);
}
