기차
면접 대비시간 제한1초메모리 제한128 MB
승객이 탑승 순서대로 같은 첫 글자 탑승자가 가장 적은 칸에 타고 동률은 총 인원과 칸 번호로 가른 뒤 각 칸의 최종 인원을 출력합니다.
문제
승객을 기다리는 빈 기차가 역에 서 있습니다. 기차는 개의 차량으로 이루어져 있고, 각 차량에는 최대 명의 승객이 탈 수 있습니다.
승객들은 한 명씩 순서대로 기차에 오르며, 아직 빈자리가 남아 있는 차량 중 하나를 골라 탑승합니다. 각 승객은 다음 규칙에 따라 탈 차량을 정합니다.
- 아직 가득 차지 않은 차량 중에서, 자신의 이름과 같은 알파벳으로 시작하는 이름을 가진 승객이 가장 적게 타고 있는 차량을 고른다.
- 그런 차량이 여러 개라면, 그중 전체 탑승객 수가 가장 적은 차량을 고른다.
- 그래도 여러 개가 남으면, 그중 가장 앞쪽(번호가 작은) 차량에 탄다.
모든 승객이 탑승을 마쳤을 때 각 차량에 타고 있는 승객 수를 구하는 프로그램을 작성하세요.
입력
첫째 줄에 차량의 수 과 각 차량의 정원 가 주어집니다 (, ).
둘째 줄에 탑승을 기다리는 승객의 수 가 주어집니다 ().
다음 개의 줄에는 승객들의 이름이 탑승하는 순서대로 주어집니다. 각 이름은 최대 개의 영어 소문자로 이루어진 문자열이며, 같은 이름을 가진 승객은 없습니다.
출력
한 줄에 각 차량에 타고 있는 승객 수를 첫 번째 차량부터 마지막 차량까지 순서대로 공백 하나로 구분해 출력합니다.
힌트
anka, branko, cvjetko가 이 순서로 타는 경우를 살펴봅시다. anka가 탈 때 기차는 비어 있습니다. 규칙 1과 2에 따르면 어느 차량이든 고를 수 있으므로, 규칙 3에 의해 첫 번째 차량을 고릅니다. branko도 규칙 1에 따라 어느 차량이든 탈 수 있지만, 규칙 2에 의해 두 번째와 세 번째 차량으로 좁혀지고, 규칙 3에 의해 두 번째 차량에 탑니다. cvjetko는 세 번째 차량이 비어 있으므로 규칙 3에 의해 세 번째 차량에 탑니다.