말을 배우는 조

아직 제출이 없습니다시간 제한3초메모리 제한128 MB

문제

조는 네 살이고 모국어를 배우고 있다. 처음에는 만들 수 있는 문장을 모두 외우려 했지만, 서로 다른 문장의 수에 끝이 없다는 것을 곧 알았다. 그래서 조는 길이가 nn 이하인 구절과 그 뜻만 외우기로 했다. 길이 kk인 구절은 한 문장에서 연속해 나오는 단어 kk개를 말한다.

조는 어떤 문장에 들어 있는 길이 nn 이하의 구절을 모두 이미 외워 두었을 때 그 문장을 완전히 이해한다.

조는 매일 오후 문장을 하나씩 읽는다. 지난 며칠 동안 배운 것은 모두 기억한다. 문장을 하나 읽으면 모르는 단어의 뜻을 물어보고 그 단어를 배운다. 그래도 문장을 완전히 이해하지 못하면 문장 전체의 뜻을 물어본다. 그 뒤 그 문장에 들어 있는 길이 nn 이하의 구절을 모두 외우고 다음 문장으로 넘어간다.

예를 들어 n=2n = 2이고 조가 "I live in a house"와 "This is a green house"를 이미 안다고 하자. 이때 "I live in a green house"는 완전히 이해한다. 길이 1과 길이 2인 구절을 이미 다 알기 때문이다. n=3n = 3이라면 "in a green"이 앞의 두 문장에서 연속해 나오지 않으므로 문장 전체의 뜻을 물어본다.

조는 자기 이름 Joe를 언제나 알고 있다.

입력

입력은 여러 개의 테스트 케이스로 이루어진다. 각 케이스의 첫 줄에는 조가 외울 수 있는 구절의 최대 길이 nn (2n52 \le n \le 5)이 주어진다.

그다음 줄부터는 조가 지난 며칠 동안 외워 둔 문장이 나온다. 이 부분은 * 한 글자만 있는 줄로 끝난다. * 다음에는 조가 오늘 읽을 문장이 나오고, 이 부분은 # 한 글자만 있는 줄로 끝난다.

두 부분은 각각 서로 다른 단어를 최대 20000개 포함한다. 문장의 끝은 . , : ; ? ! 중 한 글자로 표시하며, 이 글자는 항상 공백으로 떨어진 하나의 토큰으로 주어진다. 한 부분이 끝날 때 끝 표시 없이 남은 단어가 있으면 그 단어도 문장 하나로 본다. 끝 표시가 연달아 나와도 빈 문장은 생기지 않으며, 문장이 하나도 없는 부분도 있을 수 있다.

단어의 길이는 최대 20이고, 한 문장의 단어는 최대 100개, 한 부분의 문장은 최대 1000개다. 같은 문장이 여러 번 나올 수도 있다. 한 문장이 여러 줄에 걸쳐 나올 수도 있고, 한 줄에 문장 여러 개가 올 수도 있다.

단어는 로마자 알파벳으로만 이루어지고, 문장 끝 표시를 빼면 숫자나 다른 기호는 나오지 않는다. 대소문자만 다른 단어는 같은 단어로 본다. 그래서 Joe, JOE, joE는 모두 같은 단어다.

입력은 파일이 끝나는 곳에서 끝난다.

출력

각 테스트 케이스마다 먼저 Learning case C 한 줄을 출력한다. C는 1부터 시작하는 케이스 번호다. 이웃한 두 케이스의 출력 사이에는 빈 줄을 하나 넣는다.

오늘 읽는 문장을 순서대로 처리한다. 조가 모르는 단어 W는 그 문장에서 처음 나온 순서대로 What does the word "W" mean? 을 한 줄씩 출력하고, 한 문장에서 같은 단어를 두 번 물어보지는 않는다. 단어를 다 배운 뒤에도 문장 S를 완전히 이해하지 못하면 What does the sentence "S" mean? 을 출력한다.

W와 S는 입력에 나온 대소문자를 그대로 쓰고, S의 단어는 공백 하나로 구분한다. 완전히 이해한 문장에는 아무것도 출력하지 않는다.