codeforces#P2001B. Generate Permutation

Generate Permutation

Description

There is an integer sequence $a$ of length $n$, where each element is initially $-1$.

Misuki has two typewriters where the first one writes letters from left to right, with a pointer initially pointing to $1$, and another writes letters from right to left with a pointer initially pointing to $n$.

Misuki would choose one of the typewriters and use it to perform the following operations until $a$ becomes a permutation of $[1, 2, \ldots, n]$

  • write number: write the minimum positive integer that isn't present in the array $a$ to the element $a_i$, $i$ is the position where the pointer points at. Such operation can be performed only when $a_i = -1$.
  • carriage return: return the pointer to its initial position (i.e. $1$ for the first typewriter, $n$ for the second)
  • move pointer: move the pointer to the next position, let $i$ be the position the pointer points at before this operation, if Misuki is using the first typewriter, $i := i + 1$ would happen, and $i := i - 1$ otherwise. Such operation can be performed only if after the operation, $1 \le i \le n$ holds.

Your task is to construct any permutation $p$ of length $n$, such that the minimum number of carriage return operations needed to make $a = p$ is the same no matter which typewriter Misuki is using.

Each test contains multiple test cases. The first line of input contains a single integer $t$ ($1 \le t \le 500$) — the number of test cases. The description of the test cases follows.

The first line of each test case contains a single integer $n$ ($1 \le n \le 2 \cdot 10^5$) — the length of the permutation.

It is guaranteed that the sum of $n$ over all test cases does not exceed $2 \cdot 10^5$.

For each test case, output a line of $n$ integers, representing the permutation $p$ of length $n$ such that the minimum number of carriage return operations needed to make $a = p$ is the same no matter which typewriter Misuki is using, or $-1$ if it is impossible to do so.

If there are multiple valid permutations, you can output any of them.

Input

Each test contains multiple test cases. The first line of input contains a single integer $t$ ($1 \le t \le 500$) — the number of test cases. The description of the test cases follows.

The first line of each test case contains a single integer $n$ ($1 \le n \le 2 \cdot 10^5$) — the length of the permutation.

It is guaranteed that the sum of $n$ over all test cases does not exceed $2 \cdot 10^5$.

Output

For each test case, output a line of $n$ integers, representing the permutation $p$ of length $n$ such that the minimum number of carriage return operations needed to make $a = p$ is the same no matter which typewriter Misuki is using, or $-1$ if it is impossible to do so.

If there are multiple valid permutations, you can output any of them.

3
1
2
3
1
-1
3 1 2

Note

In the first testcase, it's possible to make $a = p = [1]$ using $0$ carriage return operations.

In the second testcase, it is possible to make $a = p = [1, 2]$ with the minimal number of carriage returns as follows:

If Misuki is using the first typewriter:

  • Write number: write $1$ to $a_1$, $a$ becomes $[1, -1]$
  • Move pointer: move the pointer to the next position. (i.e. $2$)
  • Write number: write $2$ to $a_2$, $a$ becomes $[1, 2]$

If Misuki is using the second typewriter:

  • Move pointer: move the pointer to the next position. (i.e. $1$)
  • Write number: write $1$ to $a_1$, $a$ becomes $[1, -1]$
  • Carriage return: return the pointer to $2$.
  • Write number: write $2$ to $a_2$, $a$ becomes $[1, 2]$

It can be proven that the minimum number of carriage returns needed to transform $a$ into $p$ when using the first typewriter is $0$ and it is $1$ when using the second one, so this permutation is not valid.

Similarly, $p = [2, 1]$ is also not valid, so there is no solution for $n = 2$.

In the third testcase, it is possibile to make $a = p = [3, 1, 2]$ with $1$ carriage return with both the first and the second typewriter. It can be proven that, for both typewriters, it is impossible to write $p$ with $0$ carriage returns.

With the first typewriter it is possible to:

  • Move pointer: move the pointer to the next position. (i.e. $2$)
  • Write number: write $1$ to $a_2$, $a$ becomes $[-1, 1, -1]$
  • Move pointer: move the pointer to the next position. (i.e. $3$)
  • Write number: write $2$ to $a_3$, $a$ becomes $[-1, 1, 2]$
  • Carriage return: return the pointer to $1$.
  • Write number: write $3$ to $a_1$, $a$ becomes $[3,1,2]$

With the second typewriter it is possible to:

  • Move pointer: move the pointer to the next position. (i.e. $2$)
  • Write number: write $1$ to $a_2$, $a$ becomes $[-1, 1, -1]$
  • Carriage return: return the pointer to $3$.
  • Write number: write $2$ to $a_3$, $a$ becomes $[-1, 1, 2]$
  • Move pointer: move the pointer to the next position. (i.e. $2$)
  • Move pointer: move the pointer to the next position. (i.e. $1$)
  • Write number: write $3$ to $a_1$, $a$ becomes $[3, 1, 2]$