# 定义全局变量,存储出站结果
re = []

def wso(wait, stack, out):
    if not wait and not stack: # 没有等待也没有进站的,则已经全部出站out,将结果存储在全局变量re中
        re.append(' '.join(map(str, out)))
    if wait: # 外面存在等待进站的火车,将排行第一的进站
        wso(wait[1:], stack + [wait[0]], out)
    if stack: # 车站存有要出站的火车
        wso(wait, stack[:-1], out + [stack[-1]])
        

while True:
    try:
        n = int(input())
        wait = list(map(int, input().split()))
        wso(wait, [], [])
        for i in sorted(re):
            print(i)
    except:
        break