Coding is the closest thing we have to superpower !

3150 : 搜索进阶-加加链
描述

给定一个整数n,如果存在某序列< a_0, a_1, a_2, ..., a_m >满足以下4个条件,则该序列称为n的加加链:

a_0 = 1

a_m = n

a_0 < a_1 < a_2 < ... < a_{m-1}

对于所有的k (1 \le k \le m) ,存在两个整数(可以相同)i, j (0 \le i, j \le k-1)使得 a_k=a_i+a_j

现在你的任务是,对于给定的n,构造最短的加加链。

输入

输入有多组数据,不超过10组。

每行给出一个整数n(1 \le n \le 100)

输入0表示结束。

输出

输出加加链,两个整数用一个空格分开。

若有多解,输出数字尽量小的一组。

如对于5来说,“1 2 3 5”和“1 2 4 5”均可行,则输出“1 2 3 5”。

样例

输入

5
7
12
15
77
0

输出

1 2 3 5
1 2 3 4 7
1 2 3 6 12
1 2 3 5 10 15
1 2 4 5 9 18 36 41 77
标签
语言:
主题: