역설 정렬 (스몰)
시간 제한5초메모리 제한512 MB
순서를 정해 사탕을 하나씩 건네어 둘 중 선호하는 쪽만 남기는 과정을 시뮬레이션하고 원하는 사탕 A가 남는 사전 순 최소 순서를 찾고 불가능하면 표시합니다.
문제
블라드는 사탕을 좋아한다. 서로 다른 사탕이 들어 있는 봉지가 있고, 그중 하나를 블라드가 마지막까지 들고 있게 하려고 한다. 사탕을 건넬 순서를 먼저 정한 다음, 그 순서대로 한 개씩 건넨다. 두 번째 사탕부터는 블라드가 새로 받은 사탕과 들고 있던 사탕을 비교해서 더 좋아하는 쪽을 남기고 나머지 하나를 버린다. 버린 사탕은 다시 등장하지 않는다.
어떤 순서로 건네든 블라드가 결국 가장 좋아하는 사탕을 들고 있을 것 같지만, 그렇지 않다. 블라드에게 가장 좋아하는 사탕이 없을 수도 있기 때문이다. 두 사탕을 놓고 어느 쪽을 고르는지는 모두 알려져 있지만, 그 선택이 하나의 순위로 정리되지는 않는다. 오렌지와 레몬 중에서는 오렌지를, 오렌지와 바나나 중에서는 바나나를, 레몬과 바나나 중에서는 레몬을 고를 수도 있다.
블라드가 마지막에 들고 있기를 바라는 사탕 가 정해져 있다. 모든 사탕 쌍에 대한 블라드의 선호가 주어질 때, 마지막에 사탕 가 남는 순서가 있는지 판정하고, 있다면 사전순으로 가장 앞서는 순서를 구하라.
입력
첫 줄에 테스트 케이스의 개수 가 주어진다. 이어서 개의 테스트 케이스가 주어진다.
각 테스트 케이스의 첫 줄에는 정수 과 가 공백 하나로 구분되어 주어진다. 은 사탕의 개수이고, 는 마지막에 남기를 바라는 사탕의 번호다. 사탕에는 번부터 번까지 번호가 붙어 있다.
다음 개의 줄에는 각각 개의 문자가 주어진다. 번 줄의 번째 문자는 블라드가 사탕 를 사탕 보다 좋아하면 Y, 사탕 를 사탕 보다 좋아하면 N, 이면 -이다. 줄 번호와 문자 번호는 모두 부터 센다. 이면 번 줄의 번째 문자와 번 줄의 번째 문자는 서로 다르다.
제한
출력
각 테스트 케이스마다 Case #x: 뒤에 답을 이어서 출력한다. x는 부터 시작하는 테스트 케이스 번호다.
마지막에 사탕 가 남는 순서가 없으면 IMPOSSIBLE을 출력한다. 있으면 그런 순서 중 사전순으로 가장 앞서는 것을 사탕 번호를 공백 하나로 구분해서 출력한다. 사전순 비교는 사탕 번호를 나열한 수열을 기준으로 한다.