[HNOI2002] 农场的果树

题目描述

Farmer John 的农场环境优美,其中生长了许多苹果树,而苹果正是 Farmer John 农场里奶牛最喜爱的食物! 一天,闲来无事的奶牛 Besty 坐在苹果树下。她忽然发现,农场里的苹果树都是的二叉树!——当然,这种二叉树并不是严格意义上的二叉树,它可能有左子树而不存在右子树,反之也有可能。 刚学过 Computer Science 的 Besty 给二叉树上每个节点记录下其左子树的节点个数。例如下面的一棵树: ```cpp 3 / \ 1 3 / \ / \ 0 0 1 0 / \ 0 0 ``` 随后,用先序遍历给这棵树编码,需要注意的是叶子节点上的数值不必考虑。为了更方便表述,Besty 又在这样的编码前加入一个数字:该树上节点总数。于是,上面这棵数的编码就是:9 3 1 3 1。 这样一来,每一种编码就对应了一棵唯一的二叉树。 Besty 还发现,农场里的所有二叉树的节点总数都相同!并且在节点总数确定的情况下,对任意的合法编码,农场里都存在唯一的一棵树与之对应! 于是,Besty 将所有的二叉树按照上述编码规则编码,然后以编码为关键字进行字典排序。 现在,对于一个给定的编码,奶牛 Besty 想知道字典排序紧跟其后的编码是什么。

输入输出格式

输入格式


输入文件名:next.in 输入文件有一行,为一个二叉树的编码。保证节点总数不超过 $5\times10^3$。

输出格式


输出文件名:next.out 输出文件有一行,为按字典排序紧跟其后的编码是什么。如果输入的编码是最后一个,则输出 `-1`。

输入输出样例

输入样例 #1

9 3 1 3 1

输出样例 #1

9 3 1 3 2 0