시저 암호

아직 제출이 없습니다시간 제한1초메모리 제한512 MB

문제

어떤 사람이 비밀 메시지를 받았다. 이 메시지는 라틴 알파벳 대문자(ABCDEFGHIJKLMNOPQRSTUVWXYZ)로 이루어진 문자열이며, 시저 암호로 암호화되어 있다. 시저 암호는 메시지의 각 글자를 알파벳에서 일정한 크기만큼 뒤로 밀어 바꾸는 방식이다. 알파벳의 끝을 넘어가는 글자는 다시 알파벳의 처음으로 순환한다. 예를 들어 메시지

ABCEGIKMOQSUVWXYZ

를 이동량 44인 시저 암호로 암호화하면

EFGIKMOQSUWYZABCD

가 된다.

받은 사람은 이 메시지를 해독하려 하지만, 사용된 이동량이 얼마인지는 알지 못한다. 다만 오랜 언어 경험 덕분에 원본 텍스트에서 어떤 글자가 가장 자주 등장했는지는 알고 있다. 게다가 그런 글자는 정확히 하나뿐이다. 즉 원본 텍스트에서 가장 많이 등장한 글자가 둘 이상 동시에 존재하는 경우는 없다.

암호를 풀어 원본 메시지를 복원하여라.

입력

첫째 줄에 메시지의 길이를 나타내는 정수 nn (1n1061 \le n \le 10^6)과, 원본 메시지에서 가장 자주 등장한 대문자 cc가 공백 하나로 구분되어 주어진다. 둘째 줄에는 암호화된 메시지가 주어지며, 공백 없이 nn개의 대문자로만 이루어져 있다.

출력

복원한 원본 메시지를 한 줄에 출력한다. 원본 메시지는 항상 유일하게 복원할 수 있다고 가정해도 된다.

힌트

아래 예시 입력에서 원본 텍스트는 알파벳을 따라 1010칸만큼 순환 이동되어 있다. 원본 메시지에서 가장 자주(네 번) 등장하는 글자는 A이다.