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