def main(): N, W = map(int, input().split()) VALUES = list(map(int, input().split())) WEIGHTS = list(map(int, input().split())) scores = [[-1] * (W + 1) for _ in range(N + 1)] paths = [[] for _ in range(W + 1)] scores[0][0] = 0 for i in range(N): v = VALUES[i] added_w = WEIGHTS[i] for w in range(W + 1): if scores[i][w] != -1: scores[i + 1][w] = scores[i][w] for w in range(W + 1): new_w = w + added_w new_score = scores[i][w] + v if new_w <= W and scores[i + 1][new_w] <= new_score and paths[new_w] < paths[w] + [i + 1]: scores[i + 1][new_w] = new_score paths[new_w] = paths[w] + [i + 1] path = [] for w in reversed(range(W + 1)): if scores[-1][w] != -1: path = paths[w] break print(len(path)) print(*path) if __name__ == "__main__": main()