N, Z = map(int, input().split()) V = list(map(int, input().split())) W = list(map(int, input().split())) inf = 10**18 dp = [[-inf] * (Z+1) for _ in range(N+1)] dp[N][0] = 0 for i in range(N-1, -1, -1): v = V[i] w = W[i] A = dp[i+1] B = dp[i] for j in range(Z+1): if A[j] == -inf: continue B[j] = max(B[j], A[j]) if j+w <= Z: B[j+w] = max(B[j+w], A[j] + v) ans = [] j = dp[0].index(max(dp[0])) for i in range(N): if dp[i+1][j] == dp[i][j]: continue ans.append(i) j -= W[i] print(len(ans)) print(*[a+1 for a in ans])