나쁜 과학자

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

문제

상근이는 실험 결과를 조작하는 과학자이다. 그동안 매우 조심스럽게 조작해 왔기 때문에 지난 몇 년간 누구에게도 들키지 않았다. 그러나 오랫동안 의심받지 않다 보니 상근이는 점점 조작을 허술하게 하기 시작했다.

그 결과 상근이의 최신 논문에는 서로 모순되는 이론들이 함께 실려 있다. 이 모순을 없애기 위해 상근이는 논문에서 몇 개의 이론을 삭제하려고 한다. 서로 모순되는 두 이론이 있을 때, 둘 중 적어도 하나를 삭제하면 그 모순은 사라진다.

한편 상근이의 동료 선진이는 그동안 상근이의 실험을 모두 지켜보았다. 따라서 선진이에게 의심을 사지 않고 삭제할 수 있는 이론의 개수에는 한계가 있다.

입력

첫째 줄에 테스트 케이스의 개수 $T$가 주어진다. ($1 \le T \le 100$)

각 테스트 케이스는 다음과 같이 구성된다.

  • 첫째 줄에 논문에 실린 이론의 수 $n$이 주어진다. ($1 \le n \le 50$)
  • 둘째 줄에 의심을 사지 않고 삭제할 수 있는 이론의 최대 개수 $k$가 주어진다. ($0 \le k \le 16$)
  • 셋째 줄에 서로 모순인 이론 쌍의 개수 $m$이 주어진다. ($0 \le m \le \frac{n(n-1)}{2}$)
  • 이어지는 $m$개의 줄에 서로 모순인 두 이론의 번호 $x_i$와 $y_i$가 주어진다. ($1 \le x_i < y_i \le n$)

이론에는 $1$번부터 $n$번까지 번호가 매겨져 있으며, 같은 이론 쌍은 두 번 이상 주어지지 않는다.

출력

각 테스트 케이스마다, 모든 모순을 없앤 논문을 만들기 위해 삭제해야 하는 이론의 최소 개수를 한 줄에 출력한다.

만약 그 최소 개수가 $k$보다 커서 의심을 피할 수 없다면, 대신 IMPOSSIBLE을 출력한다.