Two-gram is an ordered pair (i.e. string of length two) of capital Latin letters. For example, “AZ”, “AA”, “ZA” — three distinct two-grams.
You are given a string $s$ consisting of $n$ capital Latin letters. Your task is to find any two-gram contained in the given string as a substring (i.e. two consecutive characters of the string) maximal number of times. For example, for string $s$ = “BBAABBBA” the answer is two-gram “BB”, which contained in $s$ three times. In other words, find any most frequent two-gram.
Note that occurrences of the two-gram can overlap with each other.
Input
The first line of the input contains integer number $n$ ($2 \le n \le 100$) — the length of string $s$. The second line of the input contains the string $s$ consisting of $n$ capital Latin letters.
Output
Print the only line containing exactly two capital Latin letters — any two-gram contained in the given string $s$ as a substring (i.e. two consecutive characters of the string) maximal number of times.
Examples
input
7
ABACABA
output
AB
input
5
ZZZAA
output
ZZ
Note
In the first example “BA” is also valid answer.
In the second example the only two-gram “ZZ” can be printed because it contained in the string “ZZZAA” two times.
Solution:
private fun readLn() = readLine()!! // string line private fun readInt() = readLn().toInt() // single int private fun readStrings() = readLn().split(" ") // list of strings private fun readInts() = readStrings().map { it.toInt() } // list of ints fun main(args: Array<String>) { var n = readInt() var s = readLn() val alpha = 26 var cnt = Array(alpha, {IntArray(alpha, {0})}) for (i in 0..n-2) { cnt[s[i] - 'A'][s[i + 1] - 'A']++ } var mx = 0 var res = "" for (i in 0..alpha-1) { for (j in 0..alpha-1) { if (cnt[i][j] > mx) { mx = cnt[i][j] res = "" res += 'A' + i res += 'A' + j } } } println(res) }