매크로하드(Macrohard)사의 직원인 여러분은 정수 키를 저장하는 새로운 자료구조를 구현하라는 요청을 받았습니다.
키는 무한히 많은 칸을 가진 배열 A처럼 동작하는 특별한 정렬된 컬렉션에 저장됩니다. 칸의 번호는 1부터 시작하며, 처음에는 모든 칸이 비어 있습니다. 이 컬렉션은 다음 한 가지 연산 Insert(L,K)를 지원합니다. 여기서 L은 칸의 번호이고 K는 양의 정수입니다.
Insert(L,K)는 다음과 같이 재귀적으로 정의됩니다.
N개의 번호 L1,L2,…,LN이 주어집니다. 비어 있는 배열에서 시작하여 Insert(L1,1), Insert(L2,2), …, Insert(LN,N)을 순서대로 수행한 후 배열의 최종 상태를 출력하세요.
첫째 줄에 두 정수 N과 M이 주어집니다. N은 Insert 연산의 개수, M은 연산에서 사용될 수 있는 가장 큰 칸 번호입니다 (1≤N≤131072, 1≤M≤131072).
둘째 줄에 수행할 연산을 나타내는 N개의 정수 L1,L2,…,LN이 주어집니다 (1≤Li≤M).
모든 연산을 수행한 후 배열의 내용을 출력합니다. 첫째 줄에 비어 있지 않은 칸 중 가장 큰 번호 W를 출력합니다. 둘째 줄에 A[1],A[2],…,A[W]를 출력하며, 비어 있는 칸은 0으로 나타냅니다.