Anton buys a piglet
time limit per test
1 second
memory limit per test
256 megabytes
input
standard input
output
standard output

Anton decided not to save money, but to buy a piglet. To help with the money, he turned to his acquaintance, the wizard Kozak Vusa. It so happened that Kozak Vusa was too busy preparing special smoothies of the "B" brand, so he simply decided to give Anton two magic buttons:

1. pressing the first button doubles his balance;
2. pressing the second button adds exactly $$$2^k$$$ coins to his balance.

At the underground piglet auction, Anton saw that the cheapest beautiful piglet costs $$$x$$$ karbovanets.

He was about to start pressing the buttons, but remembered that for such manipulations, the employees of "Polybank" could sue him. Therefore, he decided that he would try to get exactly $$$x$$$ coins, after which he would immediately buy the piglet and again have exactly $$$0$$$ karbovanets in his account.

Now you need to help Anton with a plan of action, and if possible, determine the minimum number of operations needed and output the order of operations. For this, Anton promised to let you play "Calculator Online" on his laptop.

Input

The first line contains two integers $$$k$$$ and $$$x$$$ ($$$0 \le k \le 10^5$$$, $$$1 \le x \le 10^{18}$$$).

Output

In the first line, output a single number $$$n$$$ ($$$1 \leq n \leq 1\,000$$$) — the minimum number of operations of pressing one of the buttons needed to reach the balance $$$x$$$.

In the second line, output $$$n$$$ integers $$$a_1, a_2, \dots, a_n$$$ ($$$1 \leq a_i \leq 2$$$) — the buttons in the order they need to be pressed.

If it is impossible to obtain a balance exactly equal to $$$x$$$ using the given buttons, output $$$-1$$$.

Scoring

In this problem, there are conditional blocks. If your solution works correctly for certain constraints, it will receive a certain number of points. Note that each test is graded individually.

1. (33 points): $$$x \le 10^6$$$;
2. (33 points): $$$x \le 10^9$$$;
3. (34 points): without additional constraints.

Examples

Input

    3 24

Output

    3
    2 2 2

Input

    1 3

Output

    -1

Input

    0 13

Output

    6
    2 2 2 1 1 2

Note

In the first test, we can press the second button 3 times, then the balance will be equal to $$$2^3+2^3+2^3=24$$$.

In the second test, it can be shown that it is impossible to obtain a balance equal to $$$3$$$ using the given buttons.

In the third test, the following operations can be performed:

1. pressing the $$$2$$$ button, the balance is equal to $$$1$$$;
2. pressing the $$$2$$$ button, the balance is equal to $$$2$$$;
3. pressing the $$$2$$$ button, the balance is equal to $$$3$$$;
4. pressing the $$$1$$$ button, the balance is equal to $$$6$$$;
5. pressing the $$$1$$$ button, the balance is equal to $$$12$$$;
6. pressing the $$$2$$$ button, the balance is equal to $$$13$$$.

It can be shown that these answers are minimal for each test.