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 (2 ≤ n ≤ 1000, 0 ≤ k ≤ 10^18
) - 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".