잘 알다시피, SWERC 시상식이 끝나면 제출과 판정에 대한 자세한 정보를 담은 전체 스코어보드를 공개하는 것이 관례이다. 그러나 오늘은 대회 관리 시스템의 결함 때문에 관련 데이터의 대부분이 기록되지 않고 있다. 이런 상황은 우리가 지키고자 하는 높은 기준에 명백히 미치지 못하므로, 심사위원들은 남아 있는 얼마 안 되는 정보만으로 나머지 데이터를 지어내되 참가자들이 그 차이를 알아채지 못하기를 바라기로 했다. 우리의 수고를 덜기 위해, 부디 당신이 해답을 제공해 주기를 부탁한다. 그렇지 않으면 오늘의 (가짜) 스코어보드는 영원히 미궁에 빠질 것이다.
대회가 끝날 때 우리가 알게 되는 것은 팀의 수 $T$, 문제의 수 $P$, 그리고 각 팀이 받은 정답 제출의 수이다. 또한 대회장을 떠다니는 풍선의 개수와 색을 보고, 각 문제를 몇 개의 팀이 풀었는지도 추론할 수 있다. 어떤 팀이 어떤 문제를 풀었는지 알아내는 것이 당신의 과제이다.
우리의 셈 실력이 뛰어나지 못하니, 당신의 프로그램은 수집된 데이터가 어떤 스코어보드와도 맞을 수 없는 경우를 감지할 수 있어야 한다(예제 입력의 첫 번째 경우가 그러한 예이다). 그렇지 않은 경우에는 가능한 해답 하나를 $P$개의 문자로 이루어진 문자열 $T$개의 나열로 출력해야 한다. 팀과 문제에는 각각 $1$부터 $T$까지, $1$부터 $P$까지 서로 다른 정수 번호가 매겨져 있다. 팀 번호 $i$ ($1 \le i \le T$)에 대해, 알파벳 {N, Y}로 이루어진 문자열을 쓰되, 그 $j$번째 ($1 \le j \le P$) 문자는 팀 $i$가 문제 $j$를 맞혔으면 Y, 아니면 N이다.
예를 들어, 다음 세 문자열은 예제 입력의 두 번째 경우에 대한 하나의 해답이며, 그 경우 세 팀의 점수는 각각 $2$, $1$, $2$이고 세 문제의 정답 제출 수는 각각 $1$, $2$, $2$이다.
NYY
NNY
YYN
또 다른 해답으로는 다음이 있다.
NYY
NYN
YNY
여러 해답이 가능할 때는, $T$개의 행을 순서대로 이어 붙인 문자열이 사전순으로 가장 작은 것을 출력해야 한다. 위 예에서는 NYYNNYYYN이 NYYNYNYNY보다 사전순으로 앞서므로 첫 번째 해답을 택한다. (문자열 $S$가 $S'$보다 사전순으로 앞선다는 것은, 두 문자열이 처음으로 달라지는 위치에서 $S$는 N, $S'$는 Y라는 뜻이다.)
입력은 여러 개의 테스트 케이스로 이루어진다. 각 테스트 케이스는 세 줄로 주어진다.
연속한 테스트 케이스는 빈 줄로 구분된다. 입력의 마지막 줄은 0 0이다.
각 테스트 케이스에 대해, 데이터에 맞는 스코어보드가 존재하면 위에서 설명한 사전순으로 가장 작은 스코어보드를 $P$개의 문자로 이루어진 $T$개의 줄로 출력한다. 존재하지 않으면 Impossible이라는 한 줄을 출력한다. 서로 다른 테스트 케이스의 출력 사이에는 빈 줄을 하나 넣는다.