#include <iostream>
#include <unordered_map>
#include <string>
#include <climits>
using namespace std;
string find_representative_string(const string& s) {
int n = s.size();
int max_count = 0;
string result = "";
unordered_map<string, int> freq;
// 부분 문자열 길이를 최대 10으로 제한 (효율적인 범위로 제한)
int max_len = min(n, 10);
// 슬라이딩 윈도우 기법으로 부분 문자열을 계산
for (int length = 1; length <= max_len; ++length) { // 부분 문자열의 길이
for (int i = 0; i <= n - length; ++i) { // 부분 문자열의 시작 인덱스
string substring = s.substr(i, length);
freq[substring]++;
// 빈도수와 사전 순으로 조건 체크
if (freq[substring] > max_count ||
(freq[substring] == max_count && substring < result)) {
max_count = freq[substring];
result = substring;
}
}
}
return result;
}
int main() {
string s;
cin >> s; // 문자열 입력
// 결과 출력
cout << find_representative_string(s) << endl;
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8dW5vcmRlcmVkX21hcD4KI2luY2x1ZGUgPHN0cmluZz4KI2luY2x1ZGUgPGNsaW1pdHM+Cgp1c2luZyBuYW1lc3BhY2Ugc3RkOwoKc3RyaW5nIGZpbmRfcmVwcmVzZW50YXRpdmVfc3RyaW5nKGNvbnN0IHN0cmluZyYgcykgewogICAgaW50IG4gPSBzLnNpemUoKTsKICAgIGludCBtYXhfY291bnQgPSAwOwogICAgc3RyaW5nIHJlc3VsdCA9ICIiOwogICAgdW5vcmRlcmVkX21hcDxzdHJpbmcsIGludD4gZnJlcTsKCiAgICAvLyDrtoDrtoQg66y47J6Q7Je0IOq4uOydtOulvCDstZzrjIAgMTDsnLzroZwg7KCc7ZWcICjtmqjsnKjsoIHsnbgg67KU7JyE66GcIOygnO2VnCkKICAgIGludCBtYXhfbGVuID0gbWluKG4sIDEwKTsgCgogICAgLy8g7Iqs65287J2065SpIOyciOuPhOyasCDquLDrspXsnLzroZwg67aA67aEIOusuOyekOyXtOydhCDqs4TsgrAKICAgIGZvciAoaW50IGxlbmd0aCA9IDE7IGxlbmd0aCA8PSBtYXhfbGVuOyArK2xlbmd0aCkgeyAgLy8g67aA67aEIOusuOyekOyXtOydmCDquLjsnbQKICAgICAgICBmb3IgKGludCBpID0gMDsgaSA8PSBuIC0gbGVuZ3RoOyArK2kpIHsgIC8vIOu2gOu2hCDrrLjsnpDsl7TsnZgg7Iuc7J6RIOyduOuNseyKpAogICAgICAgICAgICBzdHJpbmcgc3Vic3RyaW5nID0gcy5zdWJzdHIoaSwgbGVuZ3RoKTsKICAgICAgICAgICAgZnJlcVtzdWJzdHJpbmddKys7CgogICAgICAgICAgICAvLyDruYjrj4TsiJjsmYAg7IKs7KCEIOyInOycvOuhnCDsobDqsbQg7LK07YGsCiAgICAgICAgICAgIGlmIChmcmVxW3N1YnN0cmluZ10gPiBtYXhfY291bnQgfHwgCiAgICAgICAgICAgICAgICAoZnJlcVtzdWJzdHJpbmddID09IG1heF9jb3VudCAmJiBzdWJzdHJpbmcgPCByZXN1bHQpKSB7CiAgICAgICAgICAgICAgICBtYXhfY291bnQgPSBmcmVxW3N1YnN0cmluZ107CiAgICAgICAgICAgICAgICByZXN1bHQgPSBzdWJzdHJpbmc7CiAgICAgICAgICAgIH0KICAgICAgICB9CiAgICB9CgogICAgcmV0dXJuIHJlc3VsdDsKfQoKaW50IG1haW4oKSB7CiAgICBzdHJpbmcgczsKICAgIGNpbiA+PiBzOyAgLy8g66y47J6Q7Je0IOyeheugpQoKICAgIC8vIOqysOqzvCDstpzroKUKICAgIGNvdXQgPDwgZmluZF9yZXByZXNlbnRhdGl2ZV9zdHJpbmcocykgPDwgZW5kbDsKCiAgICByZXR1cm4gMDsKfQo=