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 $ 点が与えられる。