만드는 중입니다

아직 만드는 중이라 바뀔 수 있습니다

지그재그

면접 대비

시간 제한2초메모리 제한64 MB

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

보통10점 중 4점

유형
정렬, 해시맵, 구현, 그리디
정답자
아직 제출이 없습니다

문제

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

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

입력

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

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

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

출력

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

예제3

  1. 예제 1

    입력
    4 5
    zagreb
    split
    zadar
    sisak
    z
    s
    s
    z
    z
    
    예상 출력
    zadar
    sisak
    split
    zagreb
    zadar
    
  2. 예제 2

    입력
    5 3
    london
    rim
    pariz
    moskva
    sarajevo
    p
    r
    p
    
    예상 출력
    pariz
    rim
    pariz
    
  3. 예제 3

    입력
    1 3
    zagreb
    z
    z
    z
    
    예상 출력
    zagreb
    zagreb
    zagreb