#include<stdio.h>
#include<string.h>
#define NUM 1000000
char word[NUM + 1] = { '\0' };
int main()
{
int i, length, max, max_used, question = 1;
char alphabet[27] = { 0, };
scanf("%s", word, NUM + 1);
length = strlen(word);
for (i = 0; i < length; i++)
{
if (word[i] < 91) //알파벳이 대문자, 'A' = 65
alphabet[word[i] - 'A']++;
else//알파벳이 소문자, 'a' = 97
{
alphabet[word[i] - 'a']++;
}
}
max = alphabet[0];
max_used = 0;
/*max에 가장 많이 사용된 알파벳의 사용 횟수 저장.
max와 같은 값이 나오면 question의 값을 바꿈, max값이 갱신되면 초기화.
question의 값이 마지막에 바뀌어있으면 ? 출력, 그대로면 알파벳 출력.
*/
//max_used는 가장 많이 쓰인 알파벳의 인덱스 값 지정, 나중에 + 'A' 해서 출력.
for (i = 1; i < 26; i++)
{
if (alphabet[i] > max)
{
max = alphabet[i];
question = 1;
max_used = i;
}
else if (alphabet[i] == max)
{
question = 0;
}
}
if (!question)
{
printf("?");
}
else
printf("%c", max_used + 'A');
}
I2luY2x1ZGU8c3RkaW8uaD4KI2luY2x1ZGU8c3RyaW5nLmg+CiNkZWZpbmUgTlVNIDEwMDAwMDAKCmNoYXIgd29yZFtOVU0gKyAxXSA9IHsgJ1wwJyB9OwoKaW50IG1haW4oKQp7CglpbnQgaSwgbGVuZ3RoLCBtYXgsIG1heF91c2VkLCBxdWVzdGlvbiA9IDE7CgljaGFyIGFscGhhYmV0WzI3XSA9IHsgMCwgfTsKCglzY2FuZigiJXMiLCB3b3JkLCBOVU0gKyAxKTsKCglsZW5ndGggPSBzdHJsZW4od29yZCk7CgoJZm9yIChpID0gMDsgaSA8IGxlbmd0aDsgaSsrKQoJewoJCWlmICh3b3JkW2ldIDwgOTEpCS8v7JWM7YyM67Kz7J20IOuMgOusuOyekCwgJ0EnID0gNjUKCQkJYWxwaGFiZXRbd29yZFtpXSAtICdBJ10rKzsKCQllbHNlLy/slYztjIzrsrPsnbQg7IaM66y47J6QLCAnYScgPSA5NwoJCXsKCQkJYWxwaGFiZXRbd29yZFtpXSAtICdhJ10rKzsKCQl9Cgl9CgoJbWF4ID0gYWxwaGFiZXRbMF07CgltYXhfdXNlZCA9IDA7CgoJLyptYXjsl5Ag6rCA7J6lIOunjuydtCDsgqzsmqnrkJwg7JWM7YyM67Kz7J2YIOyCrOyaqSDtmp/siJgg7KCA7J6lLgoJbWF47JmAIOqwmeydgCDqsJLsnbQg64KY7Jik66m0IHF1ZXN0aW9u7J2YIOqwkuydhCDrsJTqv4gsIG1heOqwkuydtCDqsLHsi6DrkJjrqbQg7LSI6riw7ZmULgoJcXVlc3Rpb27snZgg6rCS7J20IOuniOyngOunieyXkCDrsJTrgIzslrTsnojsnLzrqbQgPyDstpzroKUsIOq3uOuMgOuhnOuptCDslYztjIzrsrMg7Lac66ClLgoJKi8KCS8vbWF4X3VzZWTripQg6rCA7J6lIOunjuydtCDsk7Dsnbgg7JWM7YyM67Kz7J2YIOyduOuNseyKpCDqsJIg7KeA7KCVLCDrgpjspJHsl5AgKyAnQScg7ZW07IScIOy2nOugpS4KCglmb3IgKGkgPSAxOyBpIDwgMjY7IGkrKykKCXsKCQlpZiAoYWxwaGFiZXRbaV0gPiBtYXgpCgkJewoJCQltYXggPSBhbHBoYWJldFtpXTsKCQkJcXVlc3Rpb24gPSAxOwoJCQltYXhfdXNlZCA9IGk7CgkJfQoJCWVsc2UgaWYgKGFscGhhYmV0W2ldID09IG1heCkKCQl7CgkJCXF1ZXN0aW9uID0gMDsKCQl9Cgl9CgoJaWYgKCFxdWVzdGlvbikKCXsKCQlwcmludGYoIj8iKTsKCX0KCWVsc2UKCQlwcmludGYoIiVjIiwgbWF4X3VzZWQgKyAnQScpOwp9
QUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFBQUFC
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAB