#Lutece3296. 小 C 的排序

小 C 的排序

Description

一个序列被称为排列,当且仅当这个序列可以被表示为由 1,2,,n1,2,\dots,nnn 个数按某种顺序排成一排形成的序列,如 [1,3,2,4][1,3,2,4] 是一个排列,而 [1,3,4][1,3,4][3,2,2,1][3,2,2,1] 则不是排列。

对于排列 aa,如果一对正整数 ii, jj 满足 1i<jn 1 \leq i < j \leq n 而且 ai>aja_i > a_j,则称 (i,j)(i, j) 这个有序对为 aa 的一个逆序对。

在算法课上,小 C 学到了逆序对这个新概念,并且对这个概念很感兴趣。受此启发,小 C 定义了排列的 SS 值。对于一个长度为 nn 的排列 aa,他定义 aaSS 值为:

S=i=1n (ni+1)×f(i)S=\sum_{i=1}^{n} \ (n-i+1) \times f(i)

其中 f(i)f(i) 表示满足 aj<aia_j<a_ij>ij>i 的位置 jj 的个数。换句话说,f(i)f(i) 表示所有逆序对 (x,y)(x,y) 中满足 x=ix=i 的逆序对的个数。

小 C 对于 SS 值的上界非常好奇。因此,他有 tt 个关于 SS 值的问题,每个问题包括两个整数 nnmm,表示小 C 想要知道所有长度为 nn 且逆序对个数为 mm 的排列中,SS 值最大的是哪一个。

现在给出小 C 的所有问题,请你帮他一一回答。

Input

第一行一个整数 tt (1t1001 \le t \le 100),表示小 C 的问题个数;

接下来 tt 行,每行表示小 C 的一个问题。

小 C 的每个问题包括两个整数 n,mn,m (1n104,0m1061 \le n \le 10^4,0 \le m \le 10^6),分别表示排列的长度和排列中逆序对的个数。

Output

tt 行,每行 nn 个整数表示所求排列,若有多个 SS 值最大的排列,或不存在这样的排列,该行输出 1-1

Samples

3
3 1
5 10
5 11
2 1 3
5 4 3 2 1
-1

Note

对于第一个问题,共有 66 种可能的排列:

对于排列 [1,2,3][1,2,3],其逆序对个数为 00,不符合要求.

对于排列 [1,3,2][1,3,2],其逆序对个数为 11f(1)=0f(1)=0f(2)=1f(2)=1S=1S=1

对于排列 [2,1,3][2,1,3],其逆序对个数为 11f(1)=1f(1)=1f(2)=0f(2)=0S=2S=2

对于排列 [2,3,1][2,3,1],其逆序对个数为 22,不符合要求。

对于排列 [3,1,2][3,1,2],其逆序对个数为 22,不符合要求。

对于排列 [3,2,1][3,2,1],其逆序对个数为 33,不符合要求。

题目要求输出 SS 值最大的排列,故答案为 [2,1,3][2,1,3]

Resources

电子科技大学第十三届 ACM 趣味程序设计竞赛