만드는 중입니다

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

짜증나는 회계사들

면접 대비

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

요약
구매한 물품을 같은 분류끼리 모아 놓고 주어진 분류 순서대로 정렬한다. 한 분류 안의 순서는 임의로 정해도 된다.
난이도

보통10점 중 4점

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

문제

곧 있을 큰 행사를 위해 회사 대신 장을 보고 있는데, 성가신 회계사들이 자기네 까다로운 기준에 따라 산 물건을 분류하라고 요구한다. 이유가 뭐냐고? 회계사들 외에는 아무도 모른다.

입력

첫째 줄에 공백으로 구분된 두 정수 1≤n≤1051 \leq n \leq 10^5과 1≤k≤1051 \leq k \leq 10^5가 주어진다. 각각 산 물건의 개수와 회계사들이 사용하는 분류의 개수이다. 둘째 줄에는 공백으로 구분된 nn개의 문자열 t_1,t_2,…,t_nt\_1, t\_2, \ldots, t\_n이 주어지며, 이는 산 물건의 이름이다. 어떤 물건은 여러 번 샀을 수도 있다. 셋째 줄에는 공백으로 구분된 kk개의 서로 다른 문자열 c_1,c_2,…,c_kc\_1, c\_2, \ldots, c\_k가 주어지며, 이는 회계사들이 요구하는 물건 정렬 순서대로 나열한 분류의 이름이다.

다음으로 kk개의 줄이 주어지며, 각 줄은 분류 하나를 설명한다. ii번째 줄은 그 분류의 이름인 문자열 s_is\_i로 시작한다. 이어서 양의 정수 m_im\_i가 주어지고, 그다음에 분류 s_is\_i에 속하는 물건인 m_im\_i개의 서로 다른 문자열 ti_1,ti_2,…,ti_m_it^i\_1, t^i\_2, \ldots, t^i\_{m\_i}가 공백으로 구분되어 주어진다.

입력의 모든 문자열은 영어 알파벳([A-Za-z])으로 이루어진 1자 이상 10자 이하의 문자열이다. 산 물건 각각은 정확히 하나의 분류에 속하며, c_1,c_2,…,c_kc\_1, c\_2, \ldots, c\_k는 m_1,m_2,…,m_km\_1, m\_2, \ldots, m\_k의 순열임이 보장된다. 또한 ∑_i=1km_i≤105\sum\_{i=1}^{k} m\_i \leq 10^5이다.

출력

회계사들의 기준에 따라 정렬한 물건 nn개를 나타내는 문자열을 한 줄에 출력한다. 요구 사항을 만족하는 정렬 방법이 여러 가지라면 그중 아무거나 출력한다.

예제1

  1. 예제 1

    입력
    6 3
    Bucket Milk Milk Cheese Rose Drill
    Groceries Flowers Hardware
    Hardware 3 Bucket Drill Nail
    Groceries 2 Milk Cheese
    Flowers 2 Rose Tulip
    
    예상 출력
    Milk Milk Cheese Rose Drill Bucket