연수는 하드디스크의 용량이 부족해서, 필요 없는 파일들을 지워 공간을 확보하려고 한다.
모든 파일은 하나의 디렉토리 안에 있고, 연수는 그 디렉토리에서 리눅스의 rm 명령으로 파일을 지운다. rm 명령은 다음 두 가지 형태로 사용할 수 있다.
rm 파일명 : 이름이 정확히 파일명인 파일 하나만 지운다.rm 문자열* : 이름이 문자열과 같거나 문자열로 시작하는 모든 파일을 한 번에 지운다. 와일드카드 *는 반드시 문자열의 맨 끝에만 붙일 수 있다. (예를 들어 rm *.txt처럼 앞이나 중간에 쓸 수는 없다.) 문자열을 비워 rm *로 쓰면 디렉토리의 모든 파일이 지워진다.지워야 하는 파일들과, 절대 지우면 안 되는 파일들이 주어진다. 지워야 하는 파일은 모두 지우면서 지우면 안 되는 파일은 하나도 지우지 않도록 하는 데 필요한 rm 명령의 최소 횟수를 구하여라.
첫째 줄에 테스트 케이스의 개수 T가 주어진다. 각 테스트 케이스는 다음과 같은 형식으로 주어진다.
N1 (1 ≤ N1 ≤ 1000)이 주어진다.N1개의 줄에 지워야 하는 파일의 이름이 한 줄에 하나씩 주어진다.N2 (0 ≤ N2 ≤ 1000)가 주어진다.N2개의 줄에 지우면 안 되는 파일의 이름이 한 줄에 하나씩 주어진다.모든 파일 이름은 길이가 1 이상 20 이하이며, 영문 대소문자, 숫자, 그리고 점(.)으로만 이루어진다. 한 테스트 케이스 안에서 등장하는 파일 이름은 모두 서로 다르다.
각 테스트 케이스마다 필요한 rm 명령의 최소 횟수를 한 줄에 하나씩 출력한다.
첫 번째 테스트 케이스에서 지워야 하는 파일들은 다음 8개의 명령으로 정확히 지울 수 있다.
rm BAPC.*, rm filt*, rm filename*, rm clean, rm cleanup.IN1, rm cleanup.IN2, rm cleanup.out, rm p*