파일 정리 (라지)

이미 있는 디렉터리와 만들고 싶은 경로가 주어지면 새로 실행해야 하는 mkdir 횟수를 구합니다.

쉬움3트라이문자열면접 대비아직 제출이 없습니다시간 제한5초메모리 제한512 MB

문제

유닉스 계열 컴퓨터는 데이터를 디렉터리에 저장한다. 루트 디렉터리가 하나 있고, 그 안에 이름이 서로 다른 디렉터리가 여럿 들어갈 수 있다. 그 안에 또 다른 디렉터리가 들어갈 수 있고, 이런 구조가 계속 이어진다.

디렉터리는 자기 이름과 부모 디렉터리(자신이 바로 들어 있는 디렉터리)로 유일하게 정해진다. 보통 이를 경로로 적는다. 경로는 조각 여러 개로 이루어지고 각 조각 앞에는 슬래시('/')가 하나씩 붙는다. 마지막 조각이 그 디렉터리의 이름이고, 앞부분 전체가 부모 디렉터리의 경로다. 다음 경로를 보자.

/home/gcj/finals

이 경로는 "/home/gcj"가 가리키는 디렉터리 안에 있는 이름이 "finals"인 디렉터리를 뜻한다. "/home/gcj"는 다시 "/home"이 가리키는 디렉터리 안에 있는 이름이 "gcj"인 디렉터리를 뜻한다. "/home"은 조각이 하나뿐이므로 루트 디렉터리 안에 있는 이름이 "home"인 디렉터리를 뜻한다.

디렉터리를 만들 때는 mkdir 명령을 쓴다. 경로를 지정하면 mkdir은 그 경로가 가리키는 디렉터리를 만드는데, 부모 디렉터리가 이미 있을 때만 만들 수 있다. 예를 들어 아무것도 없는 상태에서 "/home/gcj/finals"와 "/home/gcj/quals"를 만들려면 명령 네 개가 필요하다.

mkdir /home
mkdir /home/gcj
mkdir /home/gcj/finals
mkdir /home/gcj/quals

컴퓨터에 이미 있는 디렉터리 전체와 새로 만들려는 디렉터리 목록이 주어진다. 그중 아직 없는 디렉터리를 모두 만들려면 mkdir 명령을 몇 번 써야 하는지 구하라.

입력

첫 줄에 테스트 케이스의 개수 TT가 주어진다. 이어서 TT개의 테스트 케이스가 주어진다. 각 케이스의 첫 줄에는 두 정수 NNMM이 공백 하나로 구분되어 주어진다.

다음 NN개의 줄에는 컴퓨터에 이미 있는 디렉터리의 경로가 한 줄에 하나씩 주어진다. 이 목록에는 루트 디렉터리를 뺀, 컴퓨터에 이미 있는 디렉터리가 모두 들어 있다. 루트 디렉터리는 어느 컴퓨터에나 있으므로 따로 적지 않는다.

다음 MM개의 줄에는 새로 만들려는 디렉터리의 경로가 한 줄에 하나씩 주어진다.

입력의 모든 경로는 위에서 설명한 형식을 따른다. 즉 경로는 소문자 알파벳과 숫자('a'부터 'z', '0'부터 '9')로만 이루어진 문자열 하나 이상으로 구성되고, 각 문자열 앞에는 슬래시가 하나씩 붙는다. 이 문자열은 비어 있지 않다.

제한

  • 1T1001 \le T \le 100
  • 경로 하나의 길이는 100자를 넘지 않는다.
  • 이미 있는 디렉터리 목록 안에서 같은 경로가 두 번 나오지 않고, 새로 만들려는 디렉터리 목록 안에서도 같은 경로가 두 번 나오지 않는다. 같은 경로가 두 목록에 각각 한 번씩 나오는 것은 가능하다.
  • 어떤 디렉터리가 컴퓨터에 이미 있다고 적혀 있으면 그 부모 디렉터리도 목록에 적혀 있다. 부모가 루트 디렉터리인 경우는 예외다.
  • 입력 전체의 크기는 100,000바이트를 넘지 않는다.
  • 0N1000 \le N \le 100
  • 1M1001 \le M \le 100

출력

각 테스트 케이스마다 "Case #x: y" 형식으로 한 줄씩 출력한다. x는 케이스 번호이고 1부터 시작한다. y는 필요한 mkdir 명령의 횟수다.