let () = Scanf.scanf "%d\n" @@ fun n -> let lst = List.fast_sort compare (Array.to_list (Array.init n @@ fun _ -> Scanf.scanf "%d " @@ fun d -> d)) in let ((buf, bcnt),(ans, cnt)) = List.fold_left (fun ((bfr, bcnt), (ans, cnt)) x -> if bfr = x then ((x, bcnt+1), (ans, cnt)) else if bcnt > cnt || (bcnt = cnt && bfr > ans) then ((x, 1), (bfr, bcnt)) else ((x, 1), (ans, cnt))) ((List.hd lst, 1), (List.hd lst, 1)) (List.tl lst) in Printf.printf "%d\n" (if bcnt > cnt || (bcnt = cnt && buf > ans) then buf else ans)