def solve(N, S, P): memo = set() ans = [] def memo_rec(b, r): if b in memo: return memo.add(b) if r == 0: ans.append(b) for i in range(N): i1 = 1 << i if b & i1 == 0 and r - P[i] >= 0: memo_rec(b | i1, r - P[i]) memo_rec(0, S) ans = [[i + 1 for i in range(N) if a & (1 << i)] for a in ans] ans.sort() for a in ans: print(*a) def main(): N, S = list(map(int, input().split())) P = [0] * N for i in range(N): P[i] = int(input()) solve(N, S, P) if __name__ == '__main__': main()