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

import java.util.Map;
import java.util.Scanner;
import java.util.TreeMap;

/**
 * Created by ishaykhiev2017 on 11.05.2018.
 */
public class Div3 {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);
        sc.nextInt();
        String n = sc.next();
        TreeMap<String, Integer> d = new TreeMap<>();
        for (int i = 0; i < n.length()-1; i++) {
            String k = n.substring(i, i + 2);
            if (d.containsKey(k)) {
                d.put(k, d.get(k) + 1);
            } else {
                d.put(k, 1);
            }
        }
        String answer = "";
        int max = -1;
        for (Map.Entry<String, Integer> entry: d.entrySet()) {
            if(max<entry.getValue()){
                answer = entry.getKey();
                max=entry.getValue();
            }
        }
        System.out.println(answer);
    }
}
