//java
import java.io.*;
import java.util.*;
public class Main1 {
public static void main(String[] args) {
Scanner sc=new Scanner(System.in);
int n =sc.nextInt();//n表示物品个数
int v=sc.nextInt();//v表示背包容量
int N=1010;
int[][] dp=new int[N][N];
int[] V=new int[N];
int[] W=new int[N];
for(int i=1;i<=n;i++) {
V[i]=sc.nextInt();
W[i]=sc.nextInt();
}
for(int i=n;i>=1;i--) {
for(int j=0;j<=v;j++){//01背包
dp[i][j]=dp[i+1][j];
if(j>=V[i]) {
dp[i][j]=Math.max(dp[i][j], dp[i+1][j-V[i]]+W[i]);
}
}
}
int ovl=v;
for(int i=1;i<=n;i++) {
//第n个物品的状态并不是由第n+1个物品转移过来的,应该特判一下
if(i==n&&ovl>=V[i]){
System.out.print(i+" ");
break;
}
//确定选了该物品
if(ovl-V[i]>=0&&dp[i][ovl]==dp[i+1][ovl-V[i]]+W[i]) {
System.out.print(i+" ");
ovl-=V[i];
}
//防治越界
if(ovl<0) break;
}
}
}