모든 사탕 쌍의 선호가 주어지면 블라드가 사탕 A를 마지막에 갖게 되는 전달 순서가 있는지 판단하고 사전 순으로 가장 작은 순서를 출력합니다.
보통7그래프DFS그리디아직 제출이 없습니다시간 제한5초메모리 제한512 MB블라드는 사탕을 좋아한다. 서로 다른 사탕이 든 봉지가 있고, 그중 하나를 블라드가 가지게 하려고 한다. 먼저 사탕을 건네줄 순서를 정한 다음, 그 순서대로 하나씩 건넨다. 두 번째 사탕부터는 블라드가 들고 있던 사탕과 방금 받은 사탕을 비교해서 더 좋아하는 쪽을 남기고 나머지 하나를 버린다.
어떤 순서로 건네든 블라드가 가장 좋아하는 사탕을 마지막에 들고 있을 것 같지만, 그렇지 않다. 블라드에게 가장 좋아하는 사탕이 반드시 있지는 않기 때문이다. 두 사탕 중 어느 쪽을 고르는지는 모든 쌍에 대해 알려져 있지만, 그 선택이 하나의 순위로 정리되지는 않는다. 오렌지와 레몬 중에서는 오렌지를, 오렌지와 바나나 중에서는 바나나를, 레몬과 바나나 중에서는 레몬을 고를 수도 있다.
블라드가 마지막에 들고 있기를 바라는 사탕이 하나 정해져 있다. 모든 사탕 쌍에 대한 블라드의 선호가 주어질 때, 그 사탕이 마지막에 남는 순서가 존재하는지 판단하라. 존재한다면 그런 순서 중 사전순으로 가장 앞서는 것을 구하라.
첫째 줄에 테스트 케이스의 개수 T가 주어진다. 이어서 T개의 테스트 케이스가 주어진다.
각 테스트 케이스의 첫째 줄에는 정수 N과 A가 공백 하나로 구분되어 주어진다. N은 사탕의 개수이고, A는 블라드가 마지막에 들고 있어야 하는 사탕의 번호다. 사탕에는 0번부터 N−1번까지 번호가 매겨져 있다. 다음 N개의 줄에는 각각 N개의 문자가 주어진다. i번째 줄의 j번째 문자는 블라드가 사탕 i를 사탕 j보다 좋아하면 'Y', 사탕 j를 사탕 i보다 좋아하면 'N', i=j이면 '-'이다. i=j이면 i번째 줄의 j번째 문자와 j번째 줄의 i번째 문자는 서로 다르다.
제한
각 테스트 케이스마다 먼저 "Case #x: "를 출력한다. 여기서 x는 1부터 시작하는 테스트 케이스 번호다. 그 뒤에, 블라드가 사탕 A를 들고 끝나는 순서가 없으면 IMPOSSIBLE을 출력하고, 있으면 그런 순서 중 사전순으로 가장 앞서는 것을 출력한다. 순서는 0번부터 N−1번까지의 사탕 번호를 한 번씩 모두 포함하며, 번호 사이는 공백 하나로 구분한다.