#include int v[3003], w[3003]; int dp[3003][3003]; int ans[3003], aa; int main() { int n, W; scanf("%d %d", &n, &W); int i, j, k; for (i = 0; i < n; i++) scanf("%d", &v[i]); for (i = 0; i < n; i++) scanf("%d", &w[i]); for (j = 0; j <= W; j++) dp[n][j] = 0; for (i = n - 1; i >= 0; i--) { for (j = 0; j <= W; j++) dp[i][j] = dp[i + 1][j]; for (j = 0; j + w[i] <= W; j++) if (dp[i][j] < v[i] + dp[i + 1][j + w[i]]) dp[i][j] = v[i] + dp[i + 1][j + w[i]]; } aa = 0; int V = dp[0][0], R = 0, f; for (k = -1; V > 0;) { for (i = k + 1; dp[i][R] == V; i++); k = i - 1; ans[aa++] = k + 1; V -= v[k]; R += w[k]; } printf("%d\n", aa); for (i = 0; i < aa - 1; i++) printf("%d ", ans[i]); printf("%d\n", ans[i]); return 0; }