특별한 케이크
시간 제한1초메모리 제한1024 MB
N명 학생의 진술을 바탕으로 어떤 진술과도 모순되지 않는 범인 후보의 번호를 오름차순으로 출력합니다. 후보가 없으면 swi를 출력합니다.
문제
흐에에...
어둠을 틈타 누군가가 시이(swi)의 엄청난 케이크를 또 먹어버렸다.
여느 날처럼 케이크를 좋아하는 시이는 근처 가게에서 사 온 엄청난 케이크를 식탁 위에 올려놓고 감상하고 있었다. 그런데 기숙사 히터가 너무 따뜻해서 시이는 잠이 들었고, 자는 사이에 케이크가 사라졌다.
케이크를 먹은 사람은 사건 당시 기숙사에 있던 시이와 시이를 제외한 명 가운데 한 명이다. 시이는 범인을 찾기 위해 자신이 자던 동안 기숙사에 있던 명의 학생을 동시에 추궁했다. 시이는 각 학생의 진술을 다음 두 가지 유형 중 하나로 정리했다.
- 명단 에 있는 학생 가운데 범인이 있다.
- 명단 에 있는 학생 가운데 범인이 없다.
명의 학생 가운데 한 명이 범인이라면 나머지 학생은 범인을 알고 있으므로, 범인을 제외한 모든 학생은 사실대로 진술한다. 범인은 자신이 케이크를 먹었다는 사실을 숨기려고 거짓으로 진술한다. 반대로 명의 학생 모두가 범인이 아니라면 시이가 케이크를 먹은 것이므로, 진술의 참과 거짓은 알 수 없다.
시이는 개의 진술을 바탕으로 범인일 가능성이 있는 학생을 추려내려 한다. 어떤 학생이 범인이라고 가정했을 때 개의 진술에 모순이 없다면, 그 학생을 범인일 가능성이 있는 학생이라고 한다. 명의 학생 가운데 범인일 가능성이 있는 학생이 없다면, 소거법에 따라 시이가 범인이므로 swi를 출력한다.
입력
첫 번째 줄에 시이의 케이크가 없어졌다는 메시지 (swi's cake is missing!)가 주어진다.
두 번째 줄에 기숙사에 있었던 시이가 아닌 학생의 수 이 주어진다.
명의 학생이 한 증언이 각각 세 줄에 걸쳐 개 주어진다. 번째 증언을 한 학생의 번호는 이다. 각 증언은 다음 형식으로 이루어진다.
- 첫 번째 줄에 명단 에 등장하는 학생의 수 이 주어진다.
- 두 번째 줄에 명단 에 등장하는 학생의 번호 이 중복 없이 공백으로 구분되어 주어진다.
- 세 번째 줄에 진술의 유형을 나타내는 정수 가 주어진다. 범인이 있다는 진술이면 , 없다는 진술이면 이다.
출력
모든 진술을 토대로 범인일 가능성이 있는 학생의 번호를 작은 번호부터 순서대로 공백으로 구분하여 출력한다.
범인일 가능성이 있는 학생이 한 명도 없다면 swi를 출력한다.