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.Entry;
import java.util.Scanner;
import java.util.TreeMap;

public class Maze{
	int a=10;
	public static void main(String []args){
		//Increment(a);
		//System.out.println((a));
		Scanner s=new Scanner(System.in);
		int n=s.nextInt();
		String str=s.next();
		TreeMap<String,Integer> tm=new TreeMap<String,Integer>(); 
		for(int i=0;i<str.length()-1;i++){
			String part=str.substring(i,i+2);
			if(!tm.containsKey(part)){
				tm.put(part, 1);
			}
			else{
				tm.put(part, tm.get(part)+1);
			}
		}
		int max=0;
		String ans="";
		for(Entry<String, Integer> entry : tm.entrySet()) {
			  String key = entry.getKey();
			  Integer value = entry.getValue();
			  //System.out.println(key+" "+value);
			  if(value>max){
				  ans=key;
				  max=value;
			  }
			}
		System.out.println(ans);
	}
}