The top row contains the numbers from $1$ to $N$, each exactly once in some order. Starting from the second row, as in Pascal's triangle, each cell holds the sum of the two cells directly above it. For example, if $N = 4$ and the top row is 3 1 2 4, the following triangle is formed.
3 1 2 4
4 3 6
7 9
16
Given $N$ and the single number at the bottom of the triangle, write a program that recovers the top row. If several answers are possible, output the lexicographically smallest one.
The first line contains two integers $N$ ($1 \le N \le 10$) and $F$. $N$ is the count of numbers in the top row, and $F$ is the number at the bottom of the triangle, a natural number at most $1{,}000{,}000$.
Print the $N$ numbers of the top row on the first line, separated by spaces. Inputs for which no answer exists are never given.