#include <iostream>
#include <unordered_map>
using namespace std;
int main()
{
int test_data[] {1, 2, 2, 5, 2, 5, 9, 9, 9};
unordered_map<int, int> count_dict;
for (int i : test_data)
count_dict[i]++;
int max_count=0;
int idx=0;
int result[sizeof(test_data)/sizeof(test_data[0])];
for(const auto &pair:count_dict)
{
if(max_count<pair.second)
{
max_count=pair.second;
idx=0;
result[idx++]=pair.first;
}
else if(max_count==pair.second)
result[idx++]=pair.first;
}
for(int i=0;i<idx;i++)
cout << result[i] <<endl;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dW5vcmRlcmVkX21hcD4KCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbWFpbigpCnsKCWludCB0ZXN0X2RhdGFbXSB7MSwgMiwgMiwgNSwgMiwgNSwgOSwgOSwgOX07CgoJdW5vcmRlcmVkX21hcDxpbnQsIGludD4gY291bnRfZGljdDsKCWZvciAoaW50IGkgOiB0ZXN0X2RhdGEpCgkJY291bnRfZGljdFtpXSsrOwoJCQoJaW50IG1heF9jb3VudD0wOwoJaW50IGlkeD0wOwoJaW50IHJlc3VsdFtzaXplb2YodGVzdF9kYXRhKS9zaXplb2YodGVzdF9kYXRhWzBdKV07Cglmb3IoY29uc3QgYXV0byAmcGFpcjpjb3VudF9kaWN0KQoJewoJCWlmKG1heF9jb3VudDxwYWlyLnNlY29uZCkKCQl7CgkJCW1heF9jb3VudD1wYWlyLnNlY29uZDsKCQkJaWR4PTA7CgkJCXJlc3VsdFtpZHgrK109cGFpci5maXJzdDsKCQl9CgkJZWxzZSBpZihtYXhfY291bnQ9PXBhaXIuc2Vjb25kKQoJCQlyZXN1bHRbaWR4KytdPXBhaXIuZmlyc3Q7Cgl9CgoJZm9yKGludCBpPTA7aTxpZHg7aSsrKQoJCWNvdXQgPDwgcmVzdWx0W2ldIDw8ZW5kbDsKfQ==