지그재그

K개의 단어와 N개의 글자가 주어질 때, 각 글자마다 그 글자로 시작하는 단어 중 지금까지 가장 적게 사용된 단어를 사전순 우선으로 골라 출력한다.

보통4정렬해시맵구현그리디면접 대비아직 제출이 없습니다시간 제한2초메모리 제한64 MB

문제

지그와 재그가 단어 놀이를 한다. 지그가 알파벳 소문자 한 글자를 말하면, 재그는 그 글자로 시작하는 단어를 하나 말한다. 재그가 말하는 단어는 미리 정해진 단어 목록에 있어야 하고, 그 글자로 시작하는 목록의 단어 중에서 지금까지 재그가 가장 적게 말한 단어여야 한다. 그런 단어가 여럿이면 사전순으로 가장 앞서는 단어를 말한다. 지그가 말하는 모든 글자에 대해 고를 수 있는 단어가 항상 존재한다.

서로 다른 단어 KK개로 이루어진 목록과 지그가 말한 글자 NN개가 주어진다. 재그가 말한 단어 NN개를 차례대로 출력하는 프로그램을 작성하시오.

입력

첫째 줄에 KK (1K1000001 \le K \le 100\,000)와 NN (1N1000001 \le N \le 100\,000)이 주어진다.

다음 KK개 줄에는 단어가 한 줄에 하나씩 주어진다. 각 단어는 길이가 2121 이하인 알파벳 소문자 문자열이다.

다음 NN개 줄에는 지그가 말한 알파벳 소문자 한 글자가 한 줄에 하나씩 주어진다.

출력

NN개 줄을 출력한다. ii번째 줄에는 지그가 말한 ii번째 글자에 재그가 답한 단어를 출력한다.