数学课上,王老师带大家一起玩数字游戏。
在纸上写下 1 \sim N 这 N 个数的某种排列,然后将相邻的数字相加得到一个长度为 N-1 的新的数列,重复这个过程,直到只剩 1 个数。
比如:有 1 \sim 4 的排列为 3 1 2 4,那么这 4 个数经过 3 次运算会得到一个整数,计算过程如下。
3 1 2 4
4 3 6
7 9
16
这个数字游戏太简单啦,大家都能正确计算出结果,于是王老师加大难度,问了大家另一个问题:如果已知上述计算过程的最后得到的那个整数,你能求出原始数列吗?
第 1 行读入 2 个整数,用空格隔开,第 1 个整数代表了原始数列数字的数量,第 2 个整数代表了原始数列经过计算最后得到的那 1 个整数的值。
输出 N 个整数,用空格隔开,表示原始数列的 N 个数,如果原始数列有多个解,请输出字典码最小的解。
请注意:最终得到的 N 个整数一定是 1 \sim N 这 N 个数的某种排列,也就是一定包含了 1 \sim N 的每个数。
样例数据保证对于读入的整数 N ,一定能找到符合题意的原数列。
4 16
3 1 2 4
6 120
1 3 2 5 6 4
可能存在多个长度为 4 的数列经过运算,得到结果 16,比如:3 2 1 4,但在所有的数列中,3 1 2 4 是字典序最小的数列。
对于 100\% 的数据,1 \le N \le 10。
东方博宜OJ月赛