#CF2046B. 通过操作得到最小字典序数组

通过操作得到最小字典序数组

B. 通过操作得到最小字典序数组
每个测试点时间限制:22
每个测试点内存限制:512512 兆字节

给定一个长度为 nn 的整数数组 aa。你可以执行以下操作任意多次(包括零次):

在一次操作中,选择一个下标 ii1in1 \le i \le n),令 ai:=ai+1a_i := a_i + 1,然后将 aia_i 移动到数组的末尾(最右侧位置)。例如,如果 a=[3,5,1,9]a = [3,5,1,9],选择 i=2i=2,则数组变为 [3,1,9,6][3,1,9,6]

请找出通过执行这些操作所能得到的字典序最小的数组。

字典序定义:数组 cc 字典序小于数组 dd 当且仅当以下条件之一成立:

  • ccdd 的前缀,但 cdc \ne d;或者
  • ccdd 第一个不同的位置上,cc 中的元素小于 dd 中的对应元素。

输入
每个测试包含多个测试用例。第一行包含一个整数 tt1t1041 \le t \le 10^4),表示测试用例的数量。
每个测试用例的描述如下:
第一行包含一个整数 nn1n1051 \le n \le 10^5),表示数组的长度。
第二行包含 nn 个整数 a1,a2,,ana_1, a_2, \dots, a_n1ai1091 \le a_i \le 10^9),表示数组中的元素。
保证所有测试用例的 nn 之和不超过 10510^5

输出
对于每个测试用例,输出一行,包含你得到的字典序最小的数组,元素之间用空格分隔。

样例

输入

3
3
2 1 3
5
1 2 2 1 4
6
1 2 3 6 5 4

输出

1 3 3 
1 1 3 3 5 
1 2 3 4 6 7