#JP21. 小组讨论

小组讨论

题目描述

大连市第二十四中学金普学校首席数学教师——梅姐,出了一道数学难题,全班共 nn 名同学作答后得到了各自的答案 aia_{i}

"好的解题方法都是在研究探讨中产生,一次小测让学生如此兴奋……课间的繁荣景象,教学不仅传递知识,更是培养学生学习的能力!"——梅姐
"一节课一道题,不断抛出问题,不断征服学生,课后学生激烈的讨论……思维的升华……课上有声到无声到有声,就是不懂到讨论到顿悟……"——梅姐

为了培养学生学习数学的能力,梅姐决定让同学们进行小组讨论。
具体地,小组讨论是指:

  1. 单次小组讨论的人数没有上限
  2. 如果进行讨论的同学中,有一半以上的同学支持同一种答案,那么讨论结束后,他们将说服所有其他参加讨论的人,使所有参与这次讨论的同学都支持相同的答案;如果没有任何一种答案被一半以上的同学支持,那么谁也说服不了谁,小组讨论后,所有人都将坚持自己原有的答案。(例如,如果 16 个人进行小组讨论,且小组中 9 个或以上的人都支持相同的答案,讨论结束后,这16个人都将支持相同的答案)
  3. 同学们的座位是按照学号排的,且同学们不会隔着其他同学进行讨论。也就是说,每次小组讨论的成员的学号必须是连续的。(例如,如果学号为 3 和学号为 6 的同学参加了一次讨论,那么学号为 4 ,5 的同学也一定参加了这次讨论)

直到全班同学都支持同一个答案,小组讨论才会停止。

梅姐想知道,同学们可能最终得到哪些答案。

输入格式

从文件 discuss.indiscuss.in 中读入数据,
第一行一个正整数 TT,表示测试数据组数,
对于每组测试数据,
第一行一个正整数 nn,表示同学数量,
第二行 nn 个正整数 aia_{i},表示学号为 ii 的同学最初支持的答案。

输出格式

输出数据到文件 discuss.outdiscuss.out
TT 行,
每行若干个整数,表示对于该组测试数据,顺序输出所有同学们可能支持的答案,
特别地,如果同学们的讨论不可能停止,你需要输出 -1 。

输入输出样例

5
5
1 2 2 2 3
6
1 2 3 1 2 3
6
1 1 1 2 2 2
3
3 2 3
2
2 1
2
-1
1 2
3
-1

数据范围和提示

样例解释

样例 1 解释

共有 5 组测试数据。
对于第一组测试数据,可以证明,唯一的可能是:所有同学最后都支持答案是 2 。
对于第二组测试数据,可以证明,无论怎么讨论,没有任何同学会改变自己的想法,讨论不可能停下。
对于第三组测试数据,一种可能的情况是:首先,学号为 1,2,3,4 的同学进行讨论。接着,学号为 1,2,3,4,5 的同学再进行讨论。最后,所有同学进行讨论。讨论结束后,所有同学都支持答案是 1 。同理,还有一种可能的情况,最后所有同学都支持答案是 2 。

数据范围

对于 6%6\% 的数据,保证 测试数据是样例 ,
对于 20%20\% 的数据,保证 n50n\leq 50
对于另外 12%12\% 的数据,保证 aiai+1 (1in1)a_{i}\leq a_{i+1} \ (1\leq i \leq n-1)
对于 100%100 \% 的数据,保证 2n105, 1ain, 1T102\leq n\leq10^5,\ 1\leq a_{i}\leq n,\ 1\leq T\leq 10