小 Mirko 旅游参观了斯拉沃尼亚(Slavonia)地区 Donji Andrijevci 镇附近的一个村庄。碰巧的是,村庄里的街道布局看起来与深度为 $K$ 的满二叉树(perfect binary tree)的形状极其相似。深度为 $K$ 的满二叉树由排列在 $K$ 个层级上的 $2^K - 1$ 个节点组成(如插图所示)。每个节点都包含一栋标有门牌号的建筑物。此外,除了最后一层的建筑物外,所有建筑物都有左子节点和右子节点(再次参见插图)。
深度为 2 和 3 的满二叉树
Mirko 参观了村庄里的所有建筑物,并记录下了确切的进入顺序。现在他想向你描述村庄的样子,但他不太记得了。幸运的是,他记得自己参观建筑物的规则:
- 开始时,他站在第一层唯一的建筑物前。
- 如果他当前所站立的建筑物有尚未访问过的左子节点,他将移动到该左子节点前。
- 如果该建筑物没有左子节点,或者他已经访问过它,他将进入当前建筑物并在纸上写下它的门牌号。
- 如果他已经访问过当前建筑物,且该建筑物有右子节点,他将移动到该右子节点前。
- 如果他已经访问了当前建筑物及其左、右子节点,他将返回到当前建筑物的父节点。
在访问上图中的村庄后,纸上的记录如下:第一个村庄为 2-1-3,第二个村庄为 1-6-4-3-5-2-7。编写一个程序,帮助 Mirko 重建每个层级上的门牌号顺序。
输入格式
输入的第一行包含整数 $K$ ($1 \le K \le 10$),表示 Mirko 刚刚访问的村庄的层数。
输入的第二行包含 $2^K - 1$ 个整数,表示 Mirko 纸上的门牌号序列。门牌号是唯一的,且都在区间 $[1, 2^K - 1]$ 内。
输出格式
输出必须包含 $K$ 行。第 $i$ 行必须包含该村庄第 $i$ 层上的门牌号序列。
样例
输入样例 1
2 2 1 3
输出样例 1
1 2 3
输入样例 2
3 1 6 4 3 5 2 7
输出样例 2
3 6 2 1 4 5 7
说明
样例 1 和样例 2 的解释:这些样例对应题目描述插图中的村庄。