
import sys
def solve():
# 讀取輸入
try:
line1 = sys.stdin.readline().split()
if not line1:
return
n, m = map(int, line1)
line2 = sys.stdin.readline().split()
if not line2:
return
nums = sorted(list(map(int, line2)))
except EOFError:
return
found = False
results = []
def backtrack(start, current_sum, path):
nonlocal found
if current_sum == m:
print(*(path))
found = True
return
if current_sum > m:
return
for i in range(start, n):
# 剪枝:如果當前數字加上去已經超過 m,後面的數字更大,一定也超過
if current_sum + nums[i] > m:
break
path.append(nums[i])
backtrack(i + 1, current_sum + nums[i], path)
path.pop()
backtrack(0, 0, [])
if not found:
print("-1")
if __name__ == "__main__":
solve()