#CF2091C. 密码锁

密码锁

C. 密码锁
每个测试点时间限制:2 秒
内存限制:256 兆字节

在 IT 校园 "NEIMARK" 中,有几个绝密房间,用于开发重大编程竞赛的题目。要进入其中一个房间,你必须通过选择正确的密码来解开一个环形锁。这个密码每天都会更新。

今天的密码是一个由 11nn 组成的排列^*,并满足以下性质:在它的每一个循环移位^\dagger 中,恰好有一个不动点。即,在每一个循环移位中,恰有一个元素的值等于它在排列中的位置。

输出任意一个满足条件的排列。如果不存在这样的排列,则输出 1-1


^* 排列定义为长度为 nn 的序列,由 11nn 的整数组成,每个数字恰好出现一次。例如,(2 1 3)(2\ 1\ 3)(1)(1)(4 3 1 2)(4\ 3\ 1\ 2) 是排列;(1 2 2)(1\ 2\ 2)(3)(3)(1 3 2 5)(1\ 3\ 2\ 5) 不是。

^\dagger 数组的循环移位是通过将最后一个元素移动到数组的开头得到的。长度为 nn 的排列恰好有 nn 个不同的循环移位。


输入格式

每个测试文件包含多个测试用例。第一行包含一个整数 tt1t5001 \le t \le 500),表示测试用例的数量。每个测试用例的描述如下:

每个测试用例只有一行,包含一个整数 nn1n21051 \le n \le 2 \cdot 10^5)。

保证所有测试用例的 nn 之和不超过 21052 \cdot 10^5


输出格式

对于每个测试用例,输出一个满足条件的排列。如果有多个解,输出任意一个。如果没有这样的排列,输出 1-1


示例输入

3
4
5
3

示例输出

-1
4 1 3 5 2
1 3 2

提示

在第二个示例中,存在一个排列,使得在每一个循环移位中都有一个不动点(深红色标出):

第一行是位置编号,第二行是该排列的所有循环移位。