만드는 중입니다

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

전화번호 다이얼링

면접 대비

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

요약
정렬된 단어 목록과 전화번호들이 주어질 때, 각 전화번호의 숫자와 키패드 대응이 일치하는 단어를 사전순으로 출력합니다.
난이도

쉬움10점 중 3점

유형
해시맵, 문자열
정답자
아직 제출이 없습니다

문제

재앙이 Billboards And Phone-numbers Company를 덮쳤다. Phone-numbers의 하이픈은 약어를 만들려고 일부러 넣은 것이다.

데이터베이스 버그 때문에 등록된 전화번호마다 있던 연상 문구가 모두 사라졌다. 연상 문구는 보통 빌보드에 실려, 광고를 보는 사람이 전화번호를 더 쉽게 기억하도록 돕는다. 연상 문구로 번호를 누르려면 그림 D.1처럼 각 글자가 적힌 숫자 키를 누르면 된다. 예를 들어 "1-800-BAPC"는 "1-800-2272"로 누른다.

이 정보와 주어진 유효 단어 목록을 이용해 등록된 각 전화번호에 가능한 연상 문구를 복원하라. 연상 문구는 단어 목록에 있는 단어 하나로만 이루어진다. 입력에는 "1-800-" 같은 접두어를 뺀, 연상 문구와 맞춰야 하는 전화번호 부분만 주어진다.

그림 D.1: 일부 숫자 키에 여러 글자가 배정된 전화기 키패드.

입력

첫 줄에 단어의 개수 nn과 전화번호의 개수 mm이 주어진다(1≤n,m≤1051 \leq n, m \leq 10^5, n⋅m≤105n \cdot m \leq 10^5).

다음 nn개 줄에는 단어 ww가 한 줄에 하나씩 주어진다(1≤∣w∣≤101 \leq |w| \leq 10). 단어는 영어 소문자(a-z)로만 이루어진다. 단어는 서로 다르며 사전순으로 주어진다.

마지막 mm개 줄에는 전화번호 pp가 한 줄에 하나씩 주어진다(1≤∣p∣≤101 \leq |p| \leq 10). 연상 문구의 글자에 대응하는 2-9 숫자로만 이루어진다.

출력

각 전화번호마다 그 번호에 맞는 유효한 연상 문구인 단어의 개수를 출력하고, 이어서 그 단어들을 사전순으로 출력한다.

예제4

  1. 예제 1

    입력
    5 3
    algorithm
    bapc
    benelux
    contest
    progaming
    2272
    424242
    2363589
    
    예상 출력
    1 bapc
    0
    1 benelux
    
  2. 예제 2

    입력
    3 1
    peer
    reds
    refs
    7337
    
    예상 출력
    3 peer reds refs
    
  3. 예제 3

    입력
    7 3
    black
    judge
    my
    of
    quartz
    sphinx
    vow
    25225
    782789
    774466
    
    예상 출력
    1 black
    1 quartz
    0
    
  4. 예제 4

    입력
    5 1
    and
    bland
    e
    land
    of
    63
    
    예상 출력
    1 of