def dfs(index, money, goods): if money == S: print ' '.join(map(str, goods)) return if index == N: return next_money = money + P[index] if next_money <= S: goods.append(index + 1) dfs(index + 1, next_money, goods) goods.pop() if money + accumulation[index] >= S: dfs(index + 1, money, goods) to_int = lambda x: int(x, 10) N, S = map(to_int, raw_input().split()) P = [to_int(raw_input()) for i in xrange(N)] accumulation = [0] * N for i in xrange(N - 2, -1, -1): accumulation[i] = accumulation[i + 1] + P[i + 1] dfs(0, 0, [])