from collections import defaultdict N, S = map(int, input().split()) P = [int(input()) for _ in range(N)] def full_search(X): L = len(X) table = [0] * (1 << L) for b in range(1 << L): for i in range(L): if b & (1 << i): table[b] = table[b ^ (1 << i)] + X[i] return table lsum, rsum = full_search(P[:N // 2]), full_search(P[N // 2:]) r_dict = defaultdict(list) for b, x in enumerate(rsum): r_dict[x].append(b) r_dict = dict(r_dict) def decode(b, l): for i in range(l): if b & (1 << i): yield i + 1 ans = [] for bl, x in enumerate(lsum): if S - x in r_dict: for br in r_dict[S - x]: tmp = list(decode(bl, N // 2)) for x in decode(br, N - N // 2): tmp.append(x + N // 2) tmp = tuple(sorted(tmp)) ans.append(tmp) ans.sort() for t in ans: print(*t)