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:

- $$$a_1\times a_2 \times \dots \times a_n=x$$$, where $$$n$$$ is the size of your array;
- $$$1\le a_i\le d$$$ for each $$$1\le i\le n$$$;
- the size of the array is minimal possible.

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.

- ($$$37$$$ points): $$$ x,d \le 2 \cdot 10^{5}$$$;
- ($$$63$$$ points): without additional constraints.

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$$$.