학과에서 파티를 연다. 파트너와 함께 참석해야 하는 학생이 m명 있고, 파트너가 되어 줄 지원자가 f명 있다.
지원자는 저마다 파트너가 되어 줄 의향이 있는 학생 명단을 미리 밝혀 두었다. 명단에 없는 학생과는 파트너가 되지 않는다.
한 번의 파티에서 지원자 한 명은 최대 한 학생의 파트너가 된다. 그래서 파티를 한 번만 열면 모든 학생이 파트너와 함께 참석하지 못할 수 있다. 대신 같은 지원자를 불러 파티를 여러 번 열 수 있다. 학생은 그중 어느 한 번에 파트너와 함께 참석하면 된다.
파티를 여는 비용이 크므로 횟수는 적을수록 좋다. 모든 학생이 파트너와 함께 파티에 참석하려면 파티를 최소 몇 번 열어야 하는지 구하라.
첫 줄에 테스트 케이스의 개수 n이 주어진다. (1≤n≤200)
각 테스트 케이스의 첫 줄에는 두 정수 m과 f가 공백 하나로 구분되어 주어진다. m은 파트너가 필요한 학생 수, f는 지원자 수다. (1≤m≤100, 1≤f≤50)
이어지는 f개의 줄 중 i번째 줄은 i번 지원자를 나타낸다. 각 줄은 그 지원자가 파트너가 되어 줄 의향이 있는 학생 수를 나타내는 양의 정수로 시작하고, 그 뒤에 학생 번호가 공백으로 구분되어 주어진다. 학생 번호는 0부터 m−1까지이며 한 줄 안에서 중복되지 않는다.
각 테스트 케이스마다 한 줄을 출력한다. 파티를 아무리 많이 열어도 모든 학생이 파트너와 함께 참석할 수 없으면 impossible을 출력한다. 그렇지 않으면 필요한 파티 횟수의 최솟값을 정수 하나로 출력한다.