#CF1335C. 两队组建

两队组建

C. 两队组建
每次测试时间限制:22
内存限制:256256 兆字节

你有 nn 名学生可供调配,你需要从中选出某一部分学生,恰好组成两支队伍。每名学生都有自己的技能,第 ii 名学生的技能用整数 aia_i 表示(不同学生可以有相同的技能)。

关于这两支队伍,有以下要求:

  • 两支队伍的人数必须相同。
  • 第一支队伍中的学生技能必须互不相同(即第一队中所有技能都是唯一的)。
  • 第二支队伍中的学生技能必须全部相同(即第二队中所有技能都相等)。

注意:第一队中的某个技能可以与第二队中的技能相同。

考虑一些例子(给出的为技能列表):

  • [1,2,3][1,2,3][4,4][4,4] 不是有效的队伍对,因为两队人数必须相同;
  • [1,1,2][1,1,2][3,3,3][3,3,3] 不是有效的队伍对,因为第一队中不允许有相同的技能;
  • [1,2,3][1,2,3][3,4,4][3,4,4] 不是有效的队伍对,因为第二队中所有技能必须相同;
  • [1,2,3][1,2,3][3,3,3][3,3,3] 是有效的队伍对;
  • [5][5][6][6] 是有效的队伍对。

你的任务是找出最大的可能人数 xx,使得可以组成两支人数均为 xx 的合法队伍(第一队技能互不相同,第二队技能全部相同)。一名学生不能同时属于两支队伍。

你需要回答 tt 个独立的测试用例。

输入
第一行包含一个整数 tt1t1041 \le t \le 10^4)——测试用例的数量。
接下来是 tt 个测试用例。
每个测试用例的第一行包含一个整数 nn1n21051 \le n \le 2 \cdot 10^5)——学生的数量。
第二行包含 nn 个整数 a1,a2,,ana_1, a_2, \dots, a_n1ain1 \le a_i \le n),其中 aia_i 是第 ii 名学生的技能。不同学生可以有相同技能。

保证所有测试用例的 nn 之和不超过 21052 \cdot 10^5n2105\sum n \le 2 \cdot 10^5)。

输出
对于每个测试用例,输出答案——最大的可能人数 xx,使得可以组成两支人数均为 xx 的合法队伍。

示例

输入

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

输出

3
1
0
2

说明
在第一个测试用例中,可以构造两支大小为 33 的队伍:第一队是 [1,2,4][1,2,4],第二队是 [4,4,4][4,4,4]。注意,还有其他构造两支大小为 33 的合法队伍的方式。