당신의 프라이버시를 지켜라!
시간 제한8초메모리 제한512 MB
각 구성원이 아는 개인정보 목록과 유출된 정보 목록이 주어질 때, 유출 집합을 정확히 설명할 수 있는 유일한 구성원을 찾고, 없으면 -1을 출력한다.
문제
ICPC (International Committee of Privacy and Confidence)는 전 세계에 많은 구성원을 둔 조직이며, 이름 그대로 프라이버시를 매우 중시하는 비밀주의자들의 단체이다. 구성원들은 업무상 다른 구성원의 개인정보를 알게 될 수 있지만, 이를 철저히 숨길 의무가 있다.
그런데 어느 날 몇몇 구성원의 개인정보가 유출되고 말았다! ICPC의 ACM (Account Control Manager: 계정 관리 책임자)인 당신은 정보를 유출한 구성원을 신속히 밝혀내어 엄중히 처분해야 한다.
당신은 구성원보다 큰 권한을 가진 관리자이므로 누가 누구의 개인정보를 알고 있는지 완전히 파악하고 있다. 물론 어떤 구성원도 자신이 모르는 구성원의 개인정보를 유출할 수는 없다. 그러나 범인이 자신이 아는 모든 개인정보를 유출했다고는 할 수 없다. 개인정보가 유출된 구성원의 목록에서 누가 개인정보를 유출했는지 (가능하다면) 밝혀내라.
그런데 ICPC라는 조직이 무엇을 목적으로 활동하는지는 최고 기밀이며, 관리자의 권한으로도 알 수 없다.
입력
입력 파일은 여러 데이터 세트를 포함한다. 하나의 데이터 세트는 다음 형식으로 주어진다.
N
M1 p1,1 p1,2... p1,M1
M2 p2,1 p2,2... p2,M2
:
MN pN,1 pN,2... pN,MN
K l1 l2... lK
N (2 ≤ N ≤ 100)은 구성원의 수를 나타내는 정수이다. 각 구성원에는 1부터 N까지의 번호가 붙어 있다. 이어지는 N개의 줄에는 각 구성원의 번호 순서대로 그 구성원이 알고 있는 개인정보의 목록이 주어진다. 각 줄의 첫 정수 Mi (0 ≤ Mi ≤ N)는 뒤에 오는 정수의 개수를 나타낸다. 나머지 정수는 그 구성원이 개인정보를 알고 있는 구성원의 번호를 나타낸다. 마지막 줄에는 개인정보가 유출된 구성원의 목록이 주어진다. K (1 ≤ K ≤ N)는 유출된 구성원의 수를 나타내며, 나머지 정수는 유출된 구성원의 번호를 나타낸다.
입력은 올바르게 주어진다고 가정해도 좋다. 즉, 어떤 구성원이 알고 있는 개인정보의 목록에 같은 구성원의 번호가 두 번 이상 주어지거나 존재하지 않는 구성원의 번호가 주어지는 일은 없다. 유출된 구성원의 번호 목록도 마찬가지이다.
N = 0일 때 입력이 끝난다.
출력
개인정보를 유출한 구성원을 밝혀낼 수 있다면 그 구성원의 번호를 출력하라. 밝혀낼 수 없다면 -1을 출력하라.
밝혀낼 수 없는 경우는 다음 두 가지이다. 하나는 유출했을 가능성이 있는 구성원이 둘 이상인 경우이다. 다른 하나는 어떤 구성원이 유출했다고 가정해도 모순이 생기는 경우이다. 어느 쪽이든 당신의 프로그램은 -1을 출력해야 한다.