// 백준 1157 단어 공부
#include <iostream>
#include <string>
using namespace std;
int arr[26]; // 알파벳 a ~ z 배열 생성
int main()
{
int max = 0, index = 0, count = 0; // 최대값, 주소, 예외처리 변수 생성
string str; // 문자열 변수 생성
cin >> str; // 문자열 입력
for (int i = 0; i < str.length(); i++)
{
str[i] = toupper(str[i]); // 입력받는 문자열을 전부 대문자로 바꿔줌
arr[str[i] - 65]++; // arr배열에[입력받은 문자열 요소의 정수값(아스키코드값) - 65]인덱스 + 1
}
for (int i = 0; i < 26; i++) // 알파벳 수(26) 만큼 반복
{
if (max < arr[i]) // max보다 arr[i]가 크면
{
max = arr[i]; // max에 arr[i] 대입
index = i; // index 변수에 i 대입
}
}
for (int i = 0; i < 26; i++) // 알파벳 수(26) 만큼 반복
{
if (max == arr[i]) // 만약 최대값을 가진 인덱스가 중복된다면
{
count++; // count 변수 + 1
}
}
if (count > 1) // 만약 count변수가 1보다 크면(최대값 중복이 1개를 넘는다면)
{
cout << "?"; // 물음표 출력
}
else // 아니면
{
cout << char(index + 65); // index + 65를 char형변환 해서 출력
}
return 0;
}