Sashko-Array Constructor
time limit per test
1 second
memory limit per test
256 megabytes
input
standard input
output
standard output

You are given the numbers $$$x$$$ and $$$d$$$. Your task is to find any array that simultaneously satisfies the following criteria:

Input

The single line contains two integers $$$x$$$ $$$(2 \le x \le 10^{9})$$$ and $$$d$$$ $$$(2 \le d \le 10^{9})$$$

Output

If such an array does not exist, then output "$$$-1$$$".

Otherwise, in the first line, output the number $$$n$$$ ($$$1 \le n \le 1000$$$) — the minimal size of the array.

In the second line, output the numbers $$$a_1,a_2,\dots,a_n$$$ ($$$1 \le a_i \le d$$$), which satisfy the condition.

If there are multiple correct answers, any of them are allowed.

It can be shown that the length of the optimal array always satisfies the constraint.

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 the evaluation is still in the testing phase.

Examples

Input
10 5
Output
2
5 2 
Input
11 6
Output
-1
Input
120 6
Output
3
5 4 6

Note

In the first example, $$$x=10$$$ and $$$d=5$$$. You need to find an array with a product of $$$10$$$. The array "$$$5,2$$$" fits, because $$$5\times 2=10$$$ and each number is not greater than $$$d$$$. It is impossible to make an array of size one, because then the only element should be equal to $$$x$$$, and in this test $$$x>d$$$.