#CF2037B. 被拦截的输入

被拦截的输入

B. 被拦截的输入
每个测试的时间限制:2 秒
内存限制:256 兆字节

为了帮助你准备即将到来的 Codeforces 比赛,Citlali 设置了一个网格问题,并试图通过你的输入流给你一个 n×mn \times m 的网格。具体来说,你的输入流中应该包含以下内容:

  • 第一行包含两个整数 nnmm —— 网格的尺寸。
  • 接下来的 nn 行,每行包含 mm 个整数 —— 网格的值。

然而,有人拦截了你的输入流,把所有给定的整数打乱顺序,并全部放在一行上!现在,这一行上有 kk 个整数,你不知道每个整数原来属于哪个位置。你决定不要求 Citlali 重新发送输入,而是自己确定 nnmm 的值。

请输出任意一组可能的 nnmm,这些值可能是 Citlali 最初提供的。


输入

第一行包含一个整数 tt1t1041 \leq t \leq 10^4)—— 测试用例的数量。

每个测试用例的第一行包含一个整数 kk3k21053 \leq k \leq 2 \cdot 10^5)—— 输入流中的整数总数。

每个测试用例的下一行包含 kk 个整数 a1,a2,,aka_1, a_2, \dots, a_k1aik1 \leq a_i \leq k)—— 打乱后的输入流内容。保证 nnmm 都包含在这 kk 个整数中。

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


输出

对于每个测试用例,输出两个整数,表示一种可能的 nnmm。如果存在多个可能的答案,输出任意一个即可。


示例输入

5
3
1 1 2
11
3 3 4 5 6 7 8 9 9 10 11
8
8 4 8 3 8 2 8 1
6
2 1 4 5 3 3
8
1 2 6 3 8 5 5 3

示例输出

1 1
3 3
2 3
4 1
1 6

说明

在第一个测试用例中,最初的输入可能是:

1 1  
2

在第二个测试用例中,最初的输入可能是:

3 3  
4 5 6  
7 8 9  
9 10 11