만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

가위바위보

면접 대비

시간 제한1초메모리 제한1024 MB

요약
남는 친구가 1명 이상 K명 이하가 되도록 Pidol이 낼 수를 정하고, 필요한 최소 라운드 수와 그 수열을 구합니다.
난이도

보통10점 중 5점

유형
해시맵, 문자열
정답자
아직 제출이 없습니다

문제

피돌이는 NN명의 친구들에게 선물을 주려고 한다. 하지만 가난했던 피돌이는 선물을 KK개(K<NK < N) 밖에 준비하지 못했다. 그래도 최대한 공평하게 나누기 위해, 가위바위보로 KK명 이하의 사람을 뽑은 뒤 한 명에게 선물을 하나씩 준다. 여러 명이 동시에 가위바위보를 하면 비기는 경우가 많으므로, 피돌이를 이긴 사람만 살아남는 방식을 쓴다. 게임은 총 MM라운드까지 진행된다. 처음에는 NN명으로 시작하고, 라운드마다 피돌이를 이긴 사람만 다음 라운드로 넘어간다. 남은 사람이 KK명 이하가 되는 즉시 게임이 끝나고 선물을 나누어 준다. 아무도 남지 않았거나 마지막 라운드가 끝난 뒤에도 KK명을 넘게 남았다면 선물을 나누어 줄 수 없다. 피돌이는 가위바위보를 하기 귀찮아서 가능한 한 빨리 뽑으려고 한다. 독심술로 각 친구가 ii번째(1≤i≤M1 \le i \le M) 라운드에 무엇을 낼지 미리 알고 있다. 선물을 나누어 주는 데 필요한 라운드 수를 최소로 하려면 피돌이가 어떻게 내야 하는지 구하시오.

입력

첫째 줄에 친구들의 수 NN, 최대 라운드 수 MM, 준비한 선물의 개수 KK가 공백으로 구분되어 주어진다. (1≤K<N≤501 \le K < N \le 50, 1≤M≤501 \le M \le 50) 둘째 줄부터 NN개의 줄에 걸쳐 각 친구가 낼 손을 나타내는 문자열 a1a2…aMa_1a_2\dots a_M이 주어진다. aia_i는 ii번째 라운드에 낼 것이며, S는 가위, R은 바위, P는 보다. (ai∈{R,S,P}a_i \in \{R,S,P\}, 1≤i≤M1 \le i \le M)

출력

피돌이가 어떻게 내더라도 선물을 나누어 줄 수 없다면 첫째 줄에 -1을 출력한다. 나누어 줄 수 있다면 첫째 줄에 선물을 나누어 주는 데 필요한 최소 라운드 수 PP를 출력한다. (1≤P≤M1 \le P \le M) 둘째 줄에는 피돌이가 각 라운드에 내야 할 손을 나타내는 문자열 b1b2…bPb_1b_2\dots b_P를 출력한다. bib_i는 ii번째 라운드에 낼 것이며, S는 가위, R은 바위, P는 보다. (bi∈{R,S,P}b_i \in \{R,S,P\}, 1≤i≤P1 \le i \le P) 답이 여러 개라면 그중 아무거나 하나를 출력한다.

힌트

첫 번째 예제에서 피돌이가 첫 번째 라운드에 보를 내면 3번째와 4번째 친구가 남는다. 이어서 두 번째 라운드에 바위를 내면 3번째 친구만 남아 선물을 나누어 줄 수 있다. 두 번째 예제에서는 피돌이가 어떻게 내더라도 친구들이 모두 남거나 모두 탈락하므로 선물을 나누어 줄 수 없다.

예제2

  1. 예제 1

    입력
    4 3 1
    RSP
    RSS
    SPS
    SRP
    
    예상 출력
    2
    PR
    
  2. 예제 2

    입력
    2 3 1
    PSR
    PSR
    
    예상 출력
    -1