우주선 고장

아직 제출이 없습니다시간 제한1초메모리 제한128 MB

문제

궁정의 음모는 사람들이 서로에 대해 거짓말을 하고, 다시 그 거짓말에 대해 거짓말을 하면서 시작되었다고 한다. 음모를 꾸미는 자들은 늘 희생양을 찾았고, 그 희생양은 언제나 힘이 가장 약한 자였다. 반드시 도덕성이 가장 낮은 자는 아니었지만 말이다.

우리도 비슷한 문제에 부딪혔는데, 이번에는 고장 난 우주선 안에서다! 우주선에는 여러 개의 유닛이 있다. 유닛들은 매우 신뢰할 수 있어서, 두 개 이상이 고장 나 있다면 우리는 크게 놀랄 것이다. 두 개 이상이 고장 나면 탐사선을 잃게 되므로, 우리는 정확히 하나의 유닛만 고장 나 있다고 확신한다.

각 유닛은 정확히 다른 두 유닛을 검사하며, 각 유닛은 적어도 하나 이상의 다른 유닛에게 검사받는다. 정상 유닛은 자신이 검사한 유닛에 대해 정확한 진단을 내린다. 예를 들어 유닛 XX가 정상이고 YY는 고장, ZZ는 정상이라고 말하면 실제로도 YY는 고장이고 ZZ는 정상이다. 그러나 고장 난 유닛은 신뢰할 수 없다. 따라서 유닛 XX가 고장 나 있는데 같은 진술을 한다면, YY는 정상일 수도 아닐 수도 있고 ZZ 또한 마찬가지다. 유닛은 자기 자신을 검사할 수 없다.

모든 유닛의 진단 보고를 받았을 때, 실제로 고장 난 유닛이 어느 것인지 찾아내는 것이 여러분의 임무다.

입력

첫 번째 줄에는 테스트 케이스의 개수 정수 tt (1t101 \le t \le 10)가 주어지고, 이어서 각 테스트 케이스의 데이터가 주어진다.

각 테스트 케이스의 첫 줄에는 유닛의 개수 정수 nn (3n1003 \le n \le 100)이 주어지고, 이어서 nn개의 줄에 각 유닛과 그 유닛의 검사 결과가 주어진다. 각 줄은 유닛의 식별 번호(양의 정수)로 시작한다. 식별 번호 뒤에는 (검사한 유닛의 식별 번호, 검사 결과) 쌍이 두 개 주어진다. 검사 결과는 한 글자로 Y 또는 N이며, 각각 검사 대상이 정상인지 고장인지를 나타낸다.

예를 들어 어떤 줄이 16 8 Y 32 N이라면, 유닛 1616이 유닛 88을 검사해 정상(Y)이라 보고하고 유닛 3232를 검사해 고장(N)이라 보고했다는 뜻이다.

출력

각 테스트 케이스마다 한 줄을 출력한다. 고장 난 유닛을 유일하게 특정할 수 있으면 그 유닛의 식별 번호를 출력하고, 입력 데이터만으로 고장 난 유닛을 특정할 수 없으면(일관된 후보가 없거나 둘 이상이면) 소문자 단어 impossible을 출력한다.