Xor Perfect
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
Special Judge, 64bit IO Format: %lld

题目描述

XOR Operator (\oplus) is used to perform a XOR operation on the individual bits of two operands. The XOR operator returns 1 if the corresponding bits in the two operands are different, and returns 0 if they are the same.

We define a non-decreasing non-negative array of size n to be great only if \overset{n}{\underset{i = 1}{\oplus}} a_i is a factor of n, where \overset{n}{\underset{i = 1}{\oplus}} a_i is the xor sum of the array a_i, which is equal to a_1 \oplus a_2 \oplus \dots \oplus a_n.

Given an integer n, can you come up with a great array of size n?

输入描述:

The first line of the input contains a single integer T (1 \le T \le 10^4) which is the number of test cases. 

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

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

输出描述:

Output T lines. for each test case, output n non-decreasing non-negative integers as one possible great array a_i (0 \le a_i \le 10^{18}) of size n. If it is impossible, output one integer -1.
示例1

输入

复制
3
1
2
3

输出

复制
1
1 3
2 2 3

说明

For the first test case, xor sum 1 is a factor of 1.
For the third test case, xor sum 3 is a factor of 3.

备注: