디렉터리 만들기 (스몰)

요청한 경로마다 빠진 상위 디렉터리를 세어 필요한 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바이트를 넘지 않는다.
  • 0N100 \le N \le 10
  • 1M101 \le M \le 10

출력

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