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)))#输出