#81. 加成序列

加成序列

题目描述

满足如下条件的序列X\red{X}(序列中元素被标号为123m\red{1、2、3…m})被称为“加成序列”:

1\red{1}X[1]=1\red{X[1]=1}

2\red{2}X[m]=n\red{X[m]=n}

3\red{3}X[1]<X[2]<<X[m1]<X[m]\red{X[1]<X[2]<…<X[m-1]<X[m]}

4\red{4}、对于每个 k2km\red{k(2≤k≤m)}都存在两个整数 i\red{i }j\red{j }1i,jk1\red{1≤i,j≤k−1}i\red{i}j\red{j }可相等),使得X[k]=X[i]+X[j]\red{X[k]=X[i]+X[j]}

你的任务是:给定一个整数n\red{n},找出符合上述条件的长度m\red{m}最小的“加成序列”。

如果有多个满足要求的答案,只需要找出任意一个可行解。

输入格式

输入包含多组测试用例。

每组测试用例占据一行,包含一个整数n\red{n}

当输入为单行的0\red{0}时,表示输入结束。

输出格式

对于每个测试用例,输出一个满足需求的整数序列,数字之间用空格隔开。

每个输出占一行。

样例

输入样例

5
7
12
15
77
0

输出样例

1 2 4 5
1 2 4 6 7
1 2 4 8 12
1 2 4 5 10 15
1 2 4 8 9 17 34 68 77

提示

1n100\red{1≤n≤100}