어린 시절의 야스(Jaś)는 예전에 여러분이 회문 문제 풀이를 함께 확인해 주었던 바로 그 아이인데, 이제 어른이 되어 그냥 얀(Jan)이라고 불립니다. 얀은 지금도 단어에 숨은 성질을 무척 좋아합니다.
어느 날 얀은 단어 adam에 흥미를 느꼈습니다. 이 단어는 어떤 방식으로 회전시켜도 사전식(lexicographic) 순서로 원래 단어보다 뒤에 오는 단어가 되기 때문입니다. 여기서 회전이란 단어 앞쪽의 몇 글자를 순서를 유지한 채 뒤로 옮기는 것을 뜻합니다. adam을 회전시킨 결과는 dama, amad, mada입니다.
얀은 이런 성질을 가진 단어를 얀의 단어라고 이름 붙였습니다(특히 한 글자짜리 단어는 모두 얀의 단어입니다). 예를 들어 aabab는 얀의 단어이지만 abab는 아닙니다(두 글자만큼 회전하면 다시 abab가 되어 원래 단어보다 뒤에 오지 않기 때문입니다). barak도 얀의 단어가 아닙니다(한 글자만큼 회전하면 arakb가 되어 원래 단어보다 앞에 오기 때문입니다).
얀은 다음과 같은 놀이를 생각해 냈습니다. 소문자 영어 알파벳으로 이루어진 단어를 하나 골라, 그것을 얀의 단어들로 나눕니다. 어떤 단어는 여러 방법으로 나눌 수 있습니다. 예를 들면
abaabab = ab+aab+ab = ab+aab+a+b = ab+aabab = ...
얀은 그중에서도 가능한 한 가장 적은 개수의 얀의 단어로 나누는 방법에만 관심이 있습니다.
얀의 단어를 입력받아 그것을 최소 개수의 얀의 단어로 나눈 결과를 출력하는 프로그램을 작성하세요.
첫째 줄에 단어의 길이를 나타내는 정수 n (1≤n≤1000000)이 주어집니다. 둘째 줄에는 길이가 정확히 n인 단어 하나가 주어집니다. 이 단어는 공백이 없는 소문자 영어 알파벳 문자열입니다.
한 줄에 다음을 출력합니다. 먼저 입력으로 주어진 단어를 출력하고, 그다음에 = 기호를, 이어서 최소 분할에 포함된 얀의 단어들을 + 기호로 구분하여 출력합니다. 입력 단어 자체가 얀의 단어라면 = 뒤에 그 단어를 한 번만 출력합니다. 출력에는 공백이 없어야 합니다. 최소 분할은 유일하므로 정답은 오직 하나뿐입니다.