N = int(input())
num = list(input().split(" "))
# 本质是回溯法
def dfs(num, i, stack, out):
if i >= len(num) and len(stack) == 0:
ans.append(" ".join(out))
return
# 火车入站
if i < len(num):
stack.append(num[i])
dfs(num, i+1, stack, out)
stack.pop()
# 火车出站
if len(stack) > 0:
out.append(stack.pop())
dfs(num, i, stack, out)
stack.append(out.pop())
ans = []
dfs(num, 0, [], [])
for s in sorted(ans):
print(s)



京公网安备 11010502036488号