def dfs(wait,stack,out):
if not wait and not stack:
res.append(' '.join(map(str,out)))
if wait:#进栈,先全部进栈
dfs(wait[1:],stack+[wait[0]],out)
if stack:#出栈,一个个慢慢回调出栈
dfs(wait,stack[:-1],out+[stack[-1]])
n = int(input())
a = list(map(int,input().split()))#输入
res = []#存储结果的列表
dfs(a,[],[])
print('\n'.join(sorted(res)))#输出



京公网安备 11010502036488号