#include using namespace std; using ll=long long; int main(){ ios::sync_with_stdio(false); cin.tie(nullptr); int N,X; cin>>N>>X; vector V(N),W(N); for(int i=0;i>V[i]; for(int i=0;i>W[i]; vector> dp(N+1,vector(X+1,-1e18)); dp[N][0]=0; for(int i=N-1;i>=0;i--){ for(int x=0;x<=X;x++){ dp[i][x]=max(dp[i][x],dp[i+1][x]); if(x+W[i]<=X)dp[i][x+W[i]]=max(dp[i][x+W[i]],dp[i+1][x]+V[i]); } } ll x=-1,mx=-1; for(int w=0;w<=X;w++){ if(mx<=dp[0][w]){ mx=dp[0][w]; x=w; } } vector AN; for(int i=0;i=W[i]&&dp[i+1][x-W[i]]==mx-V[i]){ mx-=V[i]; x-=W[i]; AN.push_back(i+1); } } cout<