#define forn(i, n) for (int i = 0; i < (int)(n); i++)
int main() {
int n, W;
cin >> n >> W;
int w[n];
forn(i, n)
cin >> w[i];
int is[n + 1][W + 1];
int p[n + 1][W + 1];
// is[i][x] -- можно ли первыми i предметами
// набрать вес x
// Существует ли I \subseteq {0....i} : \sum_I w[i] = x
memset(is, 0, sizeof(is));
is[0][0] = 1;
forn(i, n) // 0 <= i < n
forn(x, W - w[i] + 1) // x <
if (is[i][x]) {
is[i + 1][x] = 1;
p[i + 1][x] = 0;
is[i + 1][x + w[i]] = 1;
p[i + 1][x + w[i]] = 1;
}
int max_w = W;
while (!is[n][max_w])
max_w--;
for (int i = n; i > 0; i--)
if (p[i][max_w])
printf("%d ", i), max_w -= w[i - 1];
}