艺术和文学一直受到科学的影响。例如,这在克里斯托弗·诺兰(Christopher Nolan)的电影中有所体现。但是,有一位科学家正在基于科幻小说中的假设进行研究。
Khosro 博士是一位理论物理学家,他受艾萨克·阿西莫夫(Isaac Asimov)小说的启发,正在研究高维平行世界。在他的研究过程中,他需要一种方法来对他虚构的高维行星网络进行排序。在 Khosro 博士虚构的 $n$ 维世界中,有 $2^n$ 颗行星以及连接它们的虫洞网络。该网络类似于一个 $n$ 维超立方体。行星编号为小于 $2^n$ 的非负整数,当且仅当 $a$ 和 $b$ 的 $n$ 位二进制表示在恰好一个位上不同时,行星 $a$ 和行星 $b$ 之间存在一个虫洞。在 Khosro 博士的模型中,每颗行星上都写有一个数字,我们仅当两颗行星之间存在直接虫洞时,才能交换它们上面的数字。给定每颗行星上写的数字,请构造一个有效的交换序列,使得数字序列按从小到大的顺序排列。形式化地说,如果行星编号 $i$ ($0 \leqslant i < 2^n$) 上写的数字记为 $a_i$,你需要构造一个有效的成对交换序列,使得序列 $a = \langle a_0, a_1, \dots, a_{2^n-1} \rangle$ 变为递增顺序。
输入格式
第一行包含一个整数 $n$ ($1 \leqslant n \leqslant 10$),表示 Khosro 博士虚构世界的维度。下一行包含 $2^n$ 个不同的整数,表示 $a_0, a_1, \dots, a_{2^n-1}$ ($0 \leqslant a_i \leqslant 10^6$)。
输出格式
在第一行输出交换的次数。如果该数字为非负数且小于 $12\,000$,则你的答案将被视为正确。随后在接下来的行中,输出交换序列。在你的解法中,每次交换必须在有直接虫洞连接的两颗行星之间进行。
样例
样例输入 1
2 3 2 10 4
样例输出 1
2 0 1 2 3
样例输入 2
1 10 100
样例输出 2
0