나쁜 과학자
시간 제한1초메모리 제한128 MB
모순 관계를 나타낸 그래프가 주어질 때, 모든 간선을 없애도록 최대 k개의 정점을 지우고 그 최소 개수를 구하거나 IMPOSSIBLE을 출력한다.
문제
상근이는 실험 결과를 조작하는 과학자이다. 그동안 매우 조심스럽게 조작해 왔기 때문에 지난 몇 년간 누구에게도 들키지 않았다. 그러나 오랫동안 의심받지 않다 보니 상근이는 점점 조작을 허술하게 하기 시작했다.
그 결과 상근이의 최신 논문에는 서로 모순되는 이론들이 함께 실려 있다. 이 모순을 없애기 위해 상근이는 논문에서 몇 개의 이론을 삭제하려고 한다. 서로 모순되는 두 이론이 있을 때, 둘 중 적어도 하나를 삭제하면 그 모순은 사라진다.
한편 상근이의 동료 선진이는 그동안 상근이의 실험을 모두 지켜보았다. 따라서 선진이에게 의심을 사지 않고 삭제할 수 있는 이론의 개수에는 한계가 있다.
입력
첫째 줄에 테스트 케이스의 개수 가 주어진다. ()
각 테스트 케이스는 다음과 같이 구성된다.
- 첫째 줄에 논문에 실린 이론의 수 이 주어진다. ()
- 둘째 줄에 의심을 사지 않고 삭제할 수 있는 이론의 최대 개수 가 주어진다. ()
- 셋째 줄에 서로 모순인 이론 쌍의 개수 이 주어진다. ()
- 이어지는 개의 줄에 서로 모순인 두 이론의 번호 와 가 주어진다. ()
이론에는 번부터 번까지 번호가 매겨져 있으며, 같은 이론 쌍은 두 번 이상 주어지지 않는다.
출력
각 테스트 케이스마다, 모든 모순을 없앤 논문을 만들기 위해 삭제해야 하는 이론의 최소 개수를 한 줄에 출력한다.
만약 그 최소 개수가 보다 커서 의심을 피할 수 없다면, 대신 IMPOSSIBLE을 출력한다.