I. Operating System
time limit per test
1 second
memory limit per test
256 megabytes
input
standard input
output
standard output

For an array $$$a$$$ of length $$$n$$$ and an integer $$$k$$$, define $$$f_k(a)$$$ as follows:

  • Initialise a counter $$$c=0$$$, and an empty first-in, first-out queue $$$Q$$$.
  • For each $$$1 \le i \le n$$$:
    1. If $$$a_i$$$ is in $$$Q$$$, do nothing.
    2. Otherwise, increment $$$c$$$ by $$$1$$$, and push $$$a_i$$$ to the end of $$$Q$$$. If this causes the length of $$$Q$$$ to exceed $$$k$$$, keep popping from the front of $$$Q$$$ until its length is at most $$$k$$$.
  • $$$f_k(a)=c$$$ after all elements of $$$a$$$ are processed.

You are given two integers $$$m$$$ and $$$k$$$. Construct an array $$$a$$$, where $$$1 \le a_i \le m$$$ for all $$$1 \le i \le |a|$$$, such that $$$f_k(a) \lt f_{k+1}(a)$$$.

Input

Each test contains multiple test cases. The first line contains the number of test cases $$$t$$$ ($$$1 \le t \le 10^4$$$). The description of the test cases follows.

The only line of each test case contains two integers $$$m$$$ and $$$k$$$ ($$$1 \le m,k \le 10^5$$$).

It is guaranteed that the sum of $$$m$$$ over all test cases does not exceed $$$10^5$$$.

Output

For each test case, if no such $$$a$$$ exists, output $$$-1$$$ on a single line.

Otherwise, first output an integer $$$n$$$ ($$$1 \le n \le 5 \cdot m$$$) on a single line, representing the length of $$$a$$$. It can be proven that if there exists a valid $$$a$$$, there exists one with length no larger than $$$5 \cdot m$$$.

Then, output $$$n$$$ integers $$$a_1,a_2,\ldots,a_n$$$ ($$$1 \le a_i \le m$$$) on a single line.

If there are multiple valid $$$a$$$'s, you may output any of them.

Example
Input
2
1 1
5 3
Output
-1
12
4 3 2 1 4 3 5 4 3 2 1 5