15
MIRZOYANOVECLOX
 23
AABBBAAACCCCCAAADDDDDDD
 2
QA
 11
GGRRAATTZZZ
 6
AZAZAZ
 10
SQSQSQSQTG
 3
KEK
 100
URXCAIZFIBNJTPCZHBQIBCILLPXZCFGMKKZMNPLCYGAVJVIBMCZEBSJWPSCPQDYCTTKPOKIJRSKIZPDGCHVOUTMPNECYORSFZFNC
 3
LOL
 2
WW
 8
PUTINVOR
 26
QWERTYUIOPASDFGHJKLZXCVBNM
 5
AZAZA
 9
EGORLETOV
 7
KADUROV
 9
MIKEPIDOR
 9
AAAAAAAAA
 100
AAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
 5
FUFEL
 50
NYQAHBYYOXLTRYQDMVENEMAQNBAKGLGQOLXNAIFNQTOCLNNQIA

MI
 DD
 QA
 ZZ
 AZ
 SQ
 KE
 IB
 LO
 WW
 PU
 QW
 AZ
 EG
 KA
 MI
 AA
 AA
 FU
 YQ

#include <bits/stdc++.h>
using namespace std;
int main() {
  long long n, count = 0, max = 0;
  string str, s[105], sss;
  cin >> n >> str;
  size_t npos = -1;
  for (long long i = 0; i < n - 1; i++) {
    if (str[i] == str[i + 1] || (str[i] == str[i + 1] + 1) ||
        (str[i] == str[i + 1] - 1) && str[i] != '*') {
      sss.push_back(str[i]);
      sss.push_back(str[i + 1]);
      while (str.find(sss) != npos) {
        str.replace(str.find(sss), 1, "*");
        count++;
        if (sss == "**") break;
      }
      s[count] = sss;
      if (count > max) max = count;
      count = 0;
      sss.clear();
      continue;
    }
    if (str[i] == 'A' && str[i + 1] == 'Z') {
      sss = "AZ";
      while (str.find(sss) != npos) {
        str.replace(str.find(sss), 1, "*");
        count++;
      }
      s[count] = sss;
      if (count > max) max = count;
      count = 0;
      sss.clear();
      continue;
    }
    if (str[i] == 'Z' && str[i + 1] == 'A') {
      sss = "ZA";
      while (str.find(sss) != npos) {
        str.replace(str.find(sss), 1, "*");
        count++;
      }
      s[count] = sss;
      if (count > max) max = count;
      count = 0;
      sss.clear();
      continue;
    }
  }
  cout << s[max];
}
