eolymp
bolt
Try our new interface for solving problems
Problems

Reverse grasshopper

Reverse grasshopper

The teacher gave Vova the task about grasshopper. It consists of the following.

In the park in a row grow n grass blades. Being on the first of them, the grasshopper wants, making jumps, to reach the last blade of grass with number n. Grasshopper for one jump can jump only one or two blades of grass ahead. Unfortunately, some grass blades have broken down and a grasshopper can not jump on them. Knowing which blades of grass are broken and believing that the first and last blades of grass are not broken, you can find the number of ways that a grasshopper can get from the first blade of grass to the last one. Vova quickly coped with the solution of this problem and came up with the opposite.

In this problem you are asked to solve the inverse problem. Namely, to find such a description of grass in the path of the grasshopper, that the number of different paths of the grasshopper is k.

Input

Two integers n and k (2n1000, 0k1018) - number of grass blades and various paths, respectively.

Output

Print in one line n numbers - the description of grass blades. A broken grass blade corresponds to the number 0, not broken corresponds to 1. The first and last blades of grass should be intact. If there are several answers, output any.

If the answer does not exist, print "Impossible".

Time limit 1 second
Memory limit 128 MiB
Input example #1
3 1
Output example #1
1 0 1
Input example #2
3 2
Output example #2
1 1 1
Input example #3
4 0
Output example #3
1 0 0 1
Input example #4
566 239
Output example #4
Impossible
Author Владимир Ульянцев
Source 2011 Cycle of Internet Olympiads for schoolchildren, Eighth individual Olympiad, March 27, Problem D