Sum of Numbers 6

Time limit2sMemory limit128 MB

Problem

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.

Input

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$.

Output

Print the $N$ numbers of the top row on the first line, separated by spaces. Inputs for which no answer exists are never given.