독일이 연합국(프랑스, 영국, 미국) 관할 지역과 소련 관할 지역으로 나뉘면서 베를린도 둘로 갈라졌다. 서베를린은 서독에 속했지만 당시 베를린 전체가 동독 영토에 둘러싸여 있었고, 서베를린과 서독의 나머지 지역을 잇는 육로는 없었다. 서독이 새 화폐를 도입하자 소련은 1948년부터 1949년까지 서독에서 서베를린으로 가는 육로와 수로를 모두 끊었다. 연합국은 서독에서 서베를린까지 비행기로 물자를 실어 날랐고, 이 작전을 공중 다리라고 부른다. 게일 할버슨이 처음 시작했다고 알려져 있는데, 조종사들은 비행기를 기다리는 아이들을 위해 손으로 만든 작은 낙하산에 초콜릿과 사탕을 매달아 떨어뜨렸다. 그래서 이 비행기에 사탕 폭격기라는 별명이 붙었다.
공중 다리를 운영하려면 최적화 문제를 여러 개 풀어야 한다. 그중 하나는 가지고 있는 비행기와 조종사를 어떻게 배정해야 목적지로 화물을 가장 많이 보낼 수 있는가이다. 비행기 한 대가 싣는 화물의 양은 모두 같다고 하자. 그러면 비행기를 최대한 많이 띄우는 것이 목표가 된다.
지금 쓸 수 있는 비행기와 조종사의 목록, 그리고 조종사마다 조종할 수 있는 비행기의 목록이 주어진다. 조종사 한 명은 비행기를 최대 한 대만 몰고, 비행기 한 대에는 조종사가 최대 한 명만 탄다. 띄울 수 있는 비행기의 최대 대수를 구하는 프로그램을 작성하시오.
첫 줄에 데이터 집합의 개수 K가 주어진다. K≥1이다. 이어서 K개의 데이터 집합이 다음 형식으로 주어진다.
각 데이터 집합의 첫 줄에는 정수 m과 n이 주어진다. m은 쓸 수 있는 비행기의 수, n은 조종사의 수이고 0≤m,n≤200이다. 다음 n개의 줄에는 조종사 한 명의 정보가 한 줄씩 주어진다. i번째 줄의 첫 수는 조종사 i가 조종할 수 있는 비행기의 수 mi이며 0≤mi≤m이다. 그 뒤에 정수 mi개가 이어지고, 각 수는 1 이상 m 이하이며 서로 다르다. 이 수들이 조종사 i가 조종할 수 있는 비행기의 번호이다.
각 데이터 집합마다 먼저 Data Set x:를 한 줄에 출력한다. 여기서 x는 데이터 집합의 번호이고 1부터 시작한다. 다음 줄에 띄울 수 있는 비행기의 최대 대수를 출력한다. 데이터 집합 하나의 출력이 끝날 때마다 빈 줄을 한 줄 출력한다.