N,X=map(int,input().split()) V=list(map(int,input().split())) W=list(map(int,input().split())) dp=[[-10**9]*(X+1) for _ in range(N+1)] dp[N][0]=0 for i in range(N-1,-1,-1): vi=V[i] wi=W[i] for j in range(X+1): dp[i][j]=max(dp[i][j],dp[i+1][j]) if j>=wi: dp[i][j]=max(dp[i][j],dp[i+1][j-wi]+vi) mv=max(dp[0]) now=0 for i in range(X+1): if dp[0][i]==mv: now=i L=[] for i in range(N): if dp[i+1][now]==dp[i][now]: continue now-=W[i] L.append(i+1) print(len(L)) print(*L)