근로장학생
면접 대비시간 제한1초메모리 제한1024 MB
각 문장에서 사전 단어가 시작하는 위치마다 그 뜻을 순서대로 이어 붙여 출력합니다. 같은 위치에서 여러 단어가 맞으면 사전순으로 앞선 단어의 뜻을 씁니다. 맞는 단어가 하나도 없으면 -1을 출력합니다.
문제
하루는 문장 안에 있는 영어 단어를 찾아 그 뜻을 알려주는 프로그램을 만드는 근로장학생이 되었다.
하지만 하루는 너무 귀찮아서 프로그램을 만들지 않았고, 제작 마감 하루 전에 당신에게 급하게 프로그램 제작을 도와달라고 요청했다. 하루를 도와주자.
- 각 정보는 로 이루어져 있으며, 는 영어 단어, 는 그 단어의 뜻이다.
- 개의 정보와 개의 문장이 주어질 때, 프로그램은 각 문장에 대해 다음과 같이 답한다.
- 문장 의 가장 왼쪽 문자의 위치를 , 가장 오른쪽 문자의 위치를 라고 하자. 이때 는 문장 의 길이이다.
- 프로그램은 각 문장 를 첫 번째 문자부터 마지막 문자까지 순서로 읽는다.
- 문장을 읽는 도중, 위치 에서 위치의 문자를 차례로 이어 붙였을 때 를 만들 수 있다면 로 답해야 한다. 위치 에서 만들 수 있는 가 여러 개라면, 사전순으로 앞선 의 로 답한다.
- 한 문장에 대해 답해야 하는 는 여러 개일 수 있다.
예를 들어, 정보 (ABC, X), (A, Y), (CDE, Z)가 있고 질문이 ABCDE라면 프로그램은 YXZ로 답해야 한다.
입력
첫 번째 줄에 정보의 개수 과 문장의 개수 이 공백으로 구분되어 주어진다. (; )
두 번째 줄부터 개의 줄에 걸쳐 와 가 공백으로 구분되어 주어진다. (; 이면 )
그다음 줄부터 개의 줄에 걸쳐 문자열 가 주어진다. ()
입력되는 모든 문자열은 영어 대문자로만 이루어져 있고, 공백은 없다.
출력
각 문자열 에 대해 프로그램이 답해야 하는 문자열을 한 줄에 하나씩 출력한다.
답할 수 있는 문자열이 없다면 대신 -1을 출력한다.