영어와 프랑스어 (Large)

영어 문장 하나와 프랑스어 문장 하나가 주어지고 나머지 문장은 한 언어에 속할 때 두 언어에 모두 속하는 단어 수를 최소화합니다.

보통7그래프아직 제출이 없습니다시간 제한5초메모리 제한512 MB

문제

영선이의 부모님은 집에서 영어와 프랑스어를 섞어 쓰며 영선이와 대화한다. 영선이는 단어를 아주 많이 들었지만, 어떤 단어가 영어이고 어떤 단어가 프랑스어인지는 모른다.

영선이는 영어로만 이루어진 문장 하나와 프랑스어로만 이루어진 문장 하나를 알고 있다. 그리고 영어인지 프랑스어인지 알 수 없는 문장을 여러 개 알고 있다. 알 수 없는 문장도 각각 전체가 영어이거나 전체가 프랑스어이다.

어떤 단어가 영어 문장에 나타났으면 그 단어는 영어이고, 프랑스어 문장에 나타났으면 그 단어는 프랑스어이다. 한 단어가 영어이면서 동시에 프랑스어일 수도 있다.

영선이가 들은 문장이 모두 주어졌을 때, 영어이면서 프랑스어인 단어의 최소 개수를 구하는 프로그램을 작성하시오.

입력

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

각 테스트 케이스의 첫째 줄에는 문장의 개수 NN이 주어진다. (2N2002 \le N \le 200) 둘째 줄부터 NN개의 줄에 문장이 한 줄에 하나씩 주어진다.

문장은 단어로 이루어져 있고, 단어는 공백으로 구분되어 있다. 단어는 알파벳 소문자로만 이루어져 있고, 길이는 10을 넘지 않는다.

첫 번째 문장은 영어 문장이고, 두 번째 문장은 프랑스어 문장이다. 나머지 문장은 어떤 언어인지 알 수 없다.

첫 두 문장은 각각 단어가 최대 1,000개이고, 나머지 문장은 각각 단어가 최대 10개이다.

출력

각 테스트 케이스마다 한 줄에 Case #x: y 형식으로 출력한다. xx는 1부터 시작하는 테스트 케이스 번호이고, yy는 영어이면서 프랑스어인 단어의 최소 개수이다.