자동 완성
면접 대비시간 제한1초메모리 제한128 MB
각 질의 접두사로 시작하는 사전 단어를 알파벳순으로 세어 K번째 단어의 원래 번호를 출력합니다.
문제
소 베시가 새 휴대폰을 장만하고 문자 메시지를 즐겨 보낸다. 그런데 발굽이 커서 작은 화면을 정확히 누르기 어렵다 보니 오타가 잦다. 농부 존은 단어의 앞부분만 받아 뒤를 채워 주는 자동 완성 앱을 만들어 베시를 돕기로 했다.
앱은 사전 하나를 참조한다. 사전에는 단어 개가 들어 있고, 각 단어는 소문자 a부터 z까지로만 이루어진다. 사전에 있는 모든 단어의 글자 수를 더하면 1,000,000 이하이다.
앱이 처리할 질의는 개이다(). 질의 하나는 접두 단어 하나와 정수 로 이루어진다. 접두 단어도 소문자로만 이루어지고 길이는 1 이상 1,000 이하이며, 는 1 이상의 정수이다. 앱은 번째 접두 단어를 접두사로 갖는 사전 단어를 모두 모아 사전순으로 늘어놓은 뒤, 그중 번째 단어를 찾아야 한다. 이 단어를 번째 접두 단어의 번째 완성이라고 하자.
입력
첫째 줄에 정수 와 이 주어진다.
다음 개의 줄에는 사전의 단어가 한 줄에 하나씩 주어진다. 이 중 번째 줄에 적힌 단어가 사전의 번째 단어이다.
다음 개의 줄에는 정수 와 접두 단어가 공백 하나를 사이에 두고 주어진다.
출력
개의 줄을 출력한다. 번째 줄에는 번째 접두 단어의 번째 완성이 사전에서 몇 번째 단어인지를 1 이상 이하의 정수로 출력한다. 완성이 개보다 적으면 대신 -1을 출력한다.
같은 단어가 사전에 여러 번 들어 있으면 사전순만으로는 순서를 가릴 수 없다. 이때는 사전에 먼저 나온 쪽을 앞선 완성으로 센다.
힌트
첫 번째 예제에서 a의 완성은 aa, aaa, aab, ab, abc, ac이다. 네 번째 완성은 ab이고 사전의 셋째 줄에 있다. da의 완성은 daa, dab, dadba이므로 두 번째 완성은 dab이고 사전의 첫째 줄에 있다. da의 완성은 셋뿐이라서 네 번째 완성은 없다.