小苯的排列构造
题号:NC269349
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
Special Judge, 64bit IO Format: %lld

题目描述

小苯又来构造排列啦。
这次小苯拿到了一个正整数 n 他想要构造一个长为 n 的排列 p,满足 p 的任意相邻两项都互素。形式化的:对于任意的 i\ (1 \leq i < n),都有 gcd(p_i, p_{i+1}) = 1

请你帮他构造一个满足条件的排列吧。

输入描述:

输入包含 T+1 行。
第一行一个正整数 T\ (1 \leq T \leq 10^3),表示测试数据组数。
接下来 T 行,每行一个正整数 n,表示小苯想构造的排列 p 的长度。
数据保证同一个数据中的所有n 的总和不超过 10^5

输出描述:

输出包含 T 行。
每行 n 个正整数,表示构造出的排列 p,如果有多解,输出任意即可,如果无解,请输出 -1
示例1

输入

复制
1
4

输出

复制
4 1 3 2

说明

(4, 1), (1, 3), (3, 2) 三对相邻数字均满足互素。

备注:

排列:一个长度为 n 的数组,满足其中 1n 的所有正整数都恰好出现了一次。
互素:如果 x, y 满足gcd(x,y)=1,则称 x, y 互素,其中 gcd(x, y) 表示 x, y 的最大公约数。