Reverse grasshopper#5506

Reverse grasshopper

1 second
128 megabytes
Medium

Vova's teacher gave him a problem about a grasshopper:

In a park, grass blades grow in a row. Starting from the first blade, the grasshopper wants to reach the last blade, which is numbered . With each jump, the grasshopper may move forward by either one or two blades. However, some blades are broken and cannot be landed on. Knowing which blades are broken (and that the first and last blades are always unbroken), it is possible to calculate the number of distinct ways the grasshopper can reach the last blade from the first.

Vova quickly solved this problem and came up with the reverse problem.

In this problem, you are asked to solve the inverse task: find a description of the grass blades such that the number of different ways for the grasshopper to go from the first to the last blade is exactly .

Input

The input contains two integers and (2 \leq n \leq 1000, 0 \leq k \leq 10^{18}) — the number of grass blades and the required number of different paths, respectively.

Output

Print numbers, each describing a grass blade: if the blade is unbroken, if it is broken. The first and last blades must be unbroken. If there are multiple possible answers, print any one of them.

If there is no solution, print Impossible.

Examples

Example 1

Loading
Loading

Example 2

Loading
Loading

Example 3

Loading
Loading

Example 4

Loading
Loading