Description
SSL中学信息组需要选一个组长。信息组一共有n个人,分别用1到n编号,其中m个人参与了投票。得票数过半(票数大于m div 2)的人将被选为组长。
输入数据将告知这m个人分别将票投给了谁,请统计出谁将担任SSL中学信息组的组长。
Input
第一行两个数n和m。
第二行有m个数,这些数都是不超过n的正整数,表明这m个人的选择。
Output
输出将被选为组长的人。如果没有人的票数过半,请输出-1。
Sample Input
7 4
7 7 2 7
Sample Output
7
Hint
数据规模
1<=n<=maxlongint
1<=m<=10000
var
a:array[0..10000] of longint;m,n,i,j:longint;
procedure qsort(l,r:longint); //快排
var
k:longint;
begin
if l>=r then exit;
i:=l; j:=r;
k:=a[(i+j) div 2];
repeat
while a[i]<k do inc(i);
while a[j]>k do dec(j);
if i<=j then
begin
a[0]:=a[i];a[i]:=a[j];a[j]:=a[0];
inc(i); dec(j);
end;
until i>j;
qsort(i,r);
qsort(l,j);
end;
begin
readln(m,n);
for i:=1 to n do
read(a[i]);
qsort(1,n);
i:=1; j:=1;
while i<=n do
begin
while (a[j+1]=a[i])and(j<=n) do inc(j);
if (j-i)>=(n div 2) then begin write(a[i],' '); exit; end;
i:=j+1; j:=i;
end;
writeln(-1);
end.