AT_codefestival_2015_qualB_b 採点
Description
[problemUrl]: https://atcoder.jp/contests/code-festival-2015-qualb/tasks/codefestival_2015_qualB_b
高橋君はテストの結果を採点しています。ところが、高橋君はある問題の正解を忘れてしまいました。この問題は、$ N $ 人が解答していて、それぞれの人の答えは $ 0 $ 以上 $ M $ 以下の整数でした。高橋君は、半分を超える人が同じ答えだった場合、それを正解とすることにしました。
$ N $ 人のこの問題に対する解答が与えられるので、高橋君は何を正解とするか出力してください。ただし、高橋君が正解を決められない場合、`?` を出力してください。
Input Format
入力は以下の形式で標準入力から与えられる。
> $ N $ $ M $ $ A_1 $ $ A_2 $ ... $ A_N $
- $ 1 $ 行目には、$ 2 $ つの整数 $ N\ (1\ ≦\ N\ ≦\ 10^5) $, $ M\ (1\ ≦\ M\ ≦\ 10^5) $ が空白区切りで与えられる。
- $ 2 $ 行目には、$ N $ 個の整数が空白区切りで与えられる。このうち $ i\ (1\ ≦\ i\ ≦\ N) $ 番目には、$ i $ 番目の人の解答を表す整数 $ A_i\ (0\ ≦\ A_i\ ≦\ M) $ が与えられる。
Output Format
高橋君が正解とする整数を $ 1 $ 行に出力せよ。ただし、高橋君が正解を決められない場合、$ 1 $ 行に `?` を出力せよ。出力の末尾に改行を入れること。
Explanation/Hint
### 部分点
この問題には部分点が設定されている。
- $ N\ ≦\ 100 $, $ M\ ≦\ 100 $ を満たすデータセットに正解した場合は、$ 40 $ 点が与えられる。
- 追加の制約のないデータセットに正解した場合は、上記とは別に $ 60 $ 点が与えられる。