# a981. 求和問題
import sys
data = list(map(int, sys.stdin.read().split()))
sys.setrecursionlimit(10000000)
n = data.pop(0)
m = data.pop(0)
data.sort(reverse = False)
middle = len(data) // 2
left = data[:middle]
right = data[middle:]
def subset(arr):
result = []
length = len(arr)
def dfs(idx, total, current_list):
if idx == length:
result.append((current_list, total))
return
else:
dfs(idx+1, total+arr[idx], current_list + [arr[idx]])
dfs(idx+1, total, current_list)
dfs(0, 0, [])
return result
left = subset(left)
right = subset(right)
right_map = {}
for arr, sums in right:
if sums not in right_map:
right_map[sums] = []
right_map[sums].append(arr)
result = []
for arr_left, sums in left:
remain = m - sums
if remain in right_map:
for arr_right in right_map[remain]:
ans = arr_left + arr_right
result.append(ans)
result.sort()
if result:
for nums in result:
print(*nums)
else:
print(-1)