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]) able=[] for i in range(X+1): if dp[0][i]==mv: able.append(i) L=[] for i in range(N): na=[] for j in able: if dp[i+1][j]==dp[i][j]: na.append(j) if len(na)>0: able=na continue L.append(i+1) for j in able: na.append(j-W[i]) able=na print(len(L)) print(*L)