소방 대피 훈련
시간 제한1초메모리 제한1024 MB
N개 건물을 대피시키되, 문서에 적힌 선행 건물이 아직 남아 있는 동안 대피할 때마다 벌점이 하나씩 늘어난다. 벌점을 최소로 하는 순서를 출력한다.
문제
소방 대피 훈련으로 N개의 건물을 모두 비운다. 각 건물에는 비우기 순서를 적은 문서가 있고, 문서에는 그 건물보다 먼저 비워야 하는 건물 번호가 나열된다. 어떤 건물을 비울 때 문서에 적힌 건물 중 아직 비우지 않은 것이 하나라도 있으면 벌점을 1개 받는다. 벌점 수를 최소화하는 비우는 순서를 찾는다.
입력
첫 줄에 세 정수 , , 가 주어진다. 는 테스트 번호, 은 건물 수, 는 평가에 쓰는 허용 벌점 상한이다. 건물 번호는 부터 까지다.
다음 줄에 각 건물의 문서가 주어진다. 번째 줄의 첫 정수는 건물 문서에 들어 있는 건물 개수이고, 그 뒤에 문서에 적힌 건물 번호가 나온다. 서로 다른 두 건물이 동시에 서로의 문서에 들어 있지 않다. 어떤 문서에도 자기 자신은 없고, 같은 번호가 두 번 나오지 않는다.
출력
줄에 건물 번호를 하나씩 출력한다. 첫 줄이 가장 먼저 비울 건물, 다음 줄이 그다음 건물이다. 각 건물 번호는 정확히 한 번씩 나온다.