#include<bits/stdc++.h>
using namespace std;
int n,l,from[1010];
double dp[1010];
struct N{
int a,b;
};
N date[1010];
bool check(int x){
for(int i=1;i<=n;i++){
for(int j=0;j<i;j++){
int t=dp[j]+sqrt(date[i].b*x-sqrt(abs(date[i].a-date[j].a-l)));
if(t>dp[i]){
dp[i]=t;
from[i]=j;
}
}
}
return dp[n]>=0;
}
void solve(){
int ll=0,r=1e6;
while(abs(r-ll)>1e-9){
double mid=(ll+r)/2;
if(check(mid))r=mid;
else ll=mid;
}
}
void print(int x){
if(from[x]!=0){
print(from[x]);
}
printf("%d ",x);
}
int main()
{
scanf("%d%d",&n,&l);
for(int i=1;i<=n;i++)scanf("%d%d",&date[i].a,&date[i].b);
solve();
print(n);
return 0;
}