NULL_SF 和 Gouk_ 发现了三个数字 n , m 和 k (m < k)。他们决定构造一个长度为 n 的排列 ^{\dagger} 。
对于该排列,Gouk_ 提出了以下函数: g(i) 是该排列中长度为 i 的前缀上不大于 m 的所有数字的和。类似地,NULL_SF 提出了函数 f ,其中 f(i) 是长度为 i 的前缀上不小于 k 的所有数字的和。长度为 i 的前缀是由原始数组的前 i 个元素组成的子数组。
例如,如果 n = 5 , m = 2 , k = 4 ,排列为 [4, 5, 3, 2, 1] ,则:
| 前缀 | 不小于 k = 4 的值 | f | 不大于 m = 2 的值 | g |
|---|---|---|---|---|
| [4] | [4] | 4 | 无 | 0 |
| [4, 5] | [4, 5] | 4 + 5 = 9 | 无 | 0 |
| [4, 5, 3] | [4, 5] | 4 + 5 = 9 | 无 | 0 |
| [4, 5, 3, 2] | [4, 5] | 4 + 5 = 9 | [2] | 2 |
| [4, 5, 3, 2, 1] | [4, 5] | 4 + 5 = 9 | [1, 2] | 1 + 2 = 3 |
帮助他们找到一个使 \left(\sum_{i=1}^n f(i) - \sum_{i=1}^n g(i)\right) 值最大化的排列。
^{\dagger} 长度为 n 的排列是由 n 个从 1 到 n 的任意顺序的不同整数组成的数组。例如, [2,3,1,5,4] 是一个排列,但 [1,2,2] 不是一个排列(因为 2 在数组中出现了两次), [1,3,4] 也不是一个排列(因为 n=3 ,但 4 出现在数组中)。
输入
第一行包含一个整数 t ( 1 \le t \le 10^4)——测试用例数。
每个案例的唯一一行包含三个整数 n, m, k ( 2 \le n \le 10^5; 1 \le m < k \le n)——要构建的排列的大小和两个整数。
保证所有测试用例中 n 的总和不超过 2 \times 10^5 。
输出
对于每个测试用例,输出排列组合,即满足问题条件的一组数字。如果有多个解决方案,你可以输出其中任何一个。
样例
| 标准输入 复制文本 |
3 5 2 5 3 1 3 10 3 8 |
| 标准输出 复制文本 |
5 4 3 1 2 3 2 1 10 9 8 7 6 5 4 1 2 3 |