수강신청

학생 번호가 적힌 클릭 기록과 정원 K가 주어질 때, 각 학생의 마지막 클릭만 남긴 뒤 그 순서대로 앞에서 K명을 출력한다.

쉬움3해시맵시뮬레이션면접 대비아직 제출이 없습니다시간 제한1초메모리 제한256 MB

문제

학기마다 종합정보시스템에서 수강신청이 열린다. 신청이 시작되는 순간 아주 많은 학생이 한꺼번에 몰려 서버 부하가 커지기 때문에, 학교는 다음 규칙으로 동작하는 수강신청 부하 관리 시스템을 도입했다.

  1. 수강신청 버튼이 활성화된 뒤, 버튼을 조금이라도 빨리 누른 학생이 대기목록에 먼저 들어간다.
  2. 이미 대기목록에 들어 있는 학생이 버튼을 다시 누르면, 그 학생은 대기목록의 맨 뒤로 밀려난다.
  3. 잠시 후 버튼이 비활성화되면 대기목록의 맨 앞에 있는 학생부터 수강신청이 자동으로 완료된다. 수강 가능 인원이 다 차면 남은 대기목록은 무시하고 수강신청을 끝낸다.

위 표는 수강 가능 인원이 3명인 알고리즘 수업에 6명이 수강신청을 한 모습이다. 버튼이 비활성화되면 두 번 이상 클릭한 학생의 앞선 기록을 지워 각 학생의 마지막 클릭만 남긴다. 그렇게 정리한 목록의 맨 앞에서부터 수강 가능 인원인 3명을 뽑는다. 표의 맨 오른쪽 열이 그 결과다. 이 규칙에 따라 수강신청에 성공한 학생을 출력하는 프로그램을 작성하시오.

입력

입력은 표준 입력으로 주어지고, 테스트 데이터는 1개다. 첫째 줄에 과목의 수강 가능 인원 KK (1K100,0001 \le K \le 100{,}000)와 학생들이 버튼을 클릭한 순서를 기록한 대기목록의 길이 LL (1L500,0001 \le L \le 500{,}000)이 주어진다. 이어지는 LL개의 줄에는 버튼을 클릭한 학생의 학번이 클릭 순서대로 한 줄에 하나씩 주어진다. 학번은 숫자 8자리로 이루어지며, 첫 자리가 0일 수도 있다.

출력

출력은 표준 출력을 사용한다. 규칙을 적용한 뒤 수강신청에 성공한 학생의 학번을 수강신청이 처리되는 순서대로 한 줄에 하나씩 출력한다. 버튼을 누른 서로 다른 학생이 KK명보다 적으면 그 학생을 모두 출력한다.