타로 점괘 허풍

길이 n인 무작위 문자열에서 {R,P,S}로 이루어진 같은 길이의 문자열 최대 10개가 연속 부분 문자열로 나타날 확률을 비교해 큰 순서대로 정렬한다.

어려움9문자열 매칭확률조합론수학아직 제출이 없습니다시간 제한2초메모리 제한512 MB

문제

해마다 가위바위보 대회 결승까지 올라가지만, 해마다 같은 상대에게 진다. 상대가 내는 수는 완전히 무작위로 보이는데도 그렇다. 게다가 상대는 자기를 이길 사람은 없다고 기자들에게 떠들고 다닌다.

올해는 대회 직전에 상대가 동네 무당들을 찾아다니는 모습을 봤다. 그래서 이쪽도 점집을 여러 군데 돌았다. 점쟁이들은 저마다 타로 카드를 펼쳐 놓고, 상대가 경기 도중 언젠가 내게 될 수의 순서를 하나씩 알려 줬다.

돈만 날린 엉터리 예언일 가능성이 크다. 그래도 이왕 받았으니 경기 중에 몇 개는 눈여겨보려고 한다. 어느 예언을 지켜봐야 할까?

결승은 nn 라운드 동안 진행한다. 각 라운드에서 상대는 바위, 보, 가위 중 하나를 다른 라운드와 독립적으로 같은 확률로 고른다. 예언의 문자열이 상대가 낸 수에 연속해서 나타나면 그 예언이 경기 중에 등장한 것이다. 예언을 등장할 확률이 큰 순서대로 정렬하라.

입력

첫째 줄에 결승의 라운드 수 nn (1n1061 \le n \le 10^6)과 예언의 개수 ss (1s101 \le s \le 10)가 주어진다.

다음 ss개 줄에 예언이 한 줄에 하나씩 주어진다. 예언은 R(바위), P(보), S(가위)로 이루어진 문자열이다. 모든 예언의 길이는 같다. 그 길이는 1 이상 nn 이하이고, 10510^5을 넘지 않는다.

출력

ss개의 예언을 경기 중에 등장할 확률이 큰 순서대로 한 줄에 하나씩 출력한다. 확률이 같은 예언은 입력에 주어진 순서대로 출력한다.