일반적인 운영체제에서 파일 시스템은 여러 디렉터리로 이루어지며, 그 안에 파일들이 들어 있습니다. 각 파일에는 보통 절대 경로(예: /usr/games/bin/kobodl)라고 불리는 표준 위치가 있으며, 사용자가 시스템의 어디에 있든 이 경로로 파일을 가리킬 수 있습니다.
대부분의 환경에서는 위치를 일일이 지정하지 않고도 다른 디렉터리의 파일을 참조할 수 있습니다. 이를 위해 흔히 PATH 같은 변수에 검색할 위치들의 순서 있는 목록을 저장합니다. 이 문제에서 각 위치는 모두 절대 경로로 주어지며, 이 순서 있는 목록을 검색 경로(search path)라고 부릅니다.
새로 만들어진 crash 셸에서는 파일 이름을 평소보다 더 친절하게 찾아 줍니다. 사용자가 어떤 파일 이름을 요청하면 crash는 다음 과정을 따릅니다.
예를 들어 파일 bang과 tang은 각각 이름 ang과는 한 글자 차이, ag와는 두 글자 차이입니다. (이 문제의 모든 문자는 소문자입니다.)
시스템의 모든 위치와 그 안의 파일 목록, 각자 자신의 순서 있는 검색 경로를 가진 사용자들, 그리고 사용자들이 찾고자 하는 파일 이름들이 주어질 때, crash가 어떤 파일 이름을 반환하는지 구하세요.
문제를 단순화하기 위해 모든 위치는 하나의 알파벳 문자열로 표현되며, 파일 이름과 사용자 이름도 마찬가지입니다. 실제 운영체제 경로는 슬래시 같은 문자로 구분된 여러 요소로 이루어지는 경우가 많지만, 이 문제에서는 그렇지 않습니다. 또한 사용자가 실수로 존재하지 않는 위치를 검색 경로에 넣을 수도 있는데, 그런 위치에는 당연히 파일이 하나도 없습니다.
입력의 모든 알파벳 문자열은 길이가 1 이상 20 이하이며, 슬래시나 공백 같은 특수 문자를 포함하지 않고, 모두 소문자로만 이루어집니다.
입력의 첫 줄에는 데이터 집합의 개수를 나타내는 정수 $N$ ($1 \le N \le 100$)이 주어집니다. 각 데이터 집합은 다음으로 구성됩니다.
location filename 형식입니다. location과 filename은 모두 알파벳 문자열입니다.username filename 형식입니다. username은 이 데이터 집합에 정의된 사용자 중 하나와 일치하고, filename은 요청하는 파일 이름입니다.각 데이터 집합에 대해 먼저 제목 DATA SET #k를 출력합니다. 여기서 k는 첫 번째 데이터 집합이면 1, 두 번째면 2와 같이 매겨집니다. 그다음, 각 데이터 집합의 $S$개 검색에 대해 (입력에서 읽은 순서대로) 다음을 수행합니다.
username REQUESTED filename 줄을 출력합니다. 여기서 filename은 username이 요청한 파일 이름입니다.FOUND filename IN location 줄을 출력합니다. 여기서 filename은 일치한 파일이고 location은 그 파일이 발견된 위치입니다. 이 줄들은 파일 이름의 알파벳 순으로 정렬되어야 합니다.