#codefestival2015qualBb. [codefestival_2015_qualB_b]Grading

[codefestival_2015_qualB_b]Grading

题目描述

Mr. Takahashi正在为他的学生批改考试卷。不幸的是,他忘记了某个问题的正确答案。

NN 位学生通过整数 00MM 的范围内的整数回答了这个问题。如果超过一半的学生回答了整数 XX,那么他决定假设正确的答案是整数 XX

给定这个问题的 NN 个学生的回答。如果他要假设正确答案是整数 XX,则输出 XX 的值。如果他无法假设正确答案是任何整数,则输出 ?


输入

输入以以下格式从标准输入中给出:

NN MM A1A_1 A2A_2 ... ANA_N

  • 第一行包含两个以空格分隔的整数 N(1N105)N (1 ≤ N ≤ 10^5)M(1M105)M (1 ≤ M ≤ 10^5)
  • 第二行包含 NN 个以空格分隔的整数 A1,A_1, A2,A_2, ...,..., ANA_N。对于每个 i(1iN)i (1 ≤ i ≤ N)Ai(0AiM)A_i (0 ≤ A_i ≤ M) 表示第 ii 位学生的回答。

输出

如果 Mr. Takahashi 要假设正确答案是整数 XX,则在一行中输出 XX 的值。否则,输出 ?。请确保在输出末尾打印换行符。

部分分数

在这个问题中可以获得部分分数:

  • 通过满足 N100N ≤ 100M100M ≤ 100 的测试集将获得 4040 分。
  • 通过没有额外限制条件的测试集将获得另外 6060 分。

输入示例1

3 2
2 1 2

输出示例1

2

输入示例2

4 2
2 1 2 1

输出示例2

?

输入示例3

10 1
0 0 0 0 0 0 1 1 1 1

输出示例3

0

输入示例4

10 5
0 1 2 3 4 5 5 5 5 5

输出示例4

?