Задачі
Вставка ключових значень
Вставка ключових значень
Вас найняла на роботу компанія \textit{MacroHard}, щоб ви розробили нову структуру даних для збереження цілих ключових значень.
Ця структура виглядає як масив \textbf{A} нескінченної довжини, комірки якого нумеруються з одиниці. Спочатку усі комірки порожні. Єдина операція, яку необходно підтримувати - це операція \textbf{Insert(L, K)}, де \textbf{L} - положення у масиві, а \textbf{K} - деяке додатне ціле ключове значення.
Операція виконується наступним чином:
\begin{itemize}
\item Якщо комірка \textbf{A\[L\]} порожня, то присвоїти \textbf{A\[L\] := K}.
\item Якщо комірка \textbf{A\[L\]} не порожня, виконати \textbf{Insert(L+1, A\[L\])}, а потім присвоїти \textbf{A\[L\] := K}.
\end{itemize}
За заданою послідовністю із \textbf{N} цілих чисел \textbf{L_1}, \textbf{L_2}, ..., \textbf{L_N} вам необхідно вивести вміст цього масиву після виконання наступної послідовності операцій:
\textbf{Insert(L_1, 1)}
\textbf{Insert(L_2, 2)}
\textbf{...}
\textbf{Insert(L_N, N)}
\InputFile
У першому рядку вхідного файла міститься \textbf{N} - кількість операцій \textbf{Insert} та \textbf{M} - максимальний номер позиції, яку можна використовувати в операції \textbf{Insert}. (\textbf{1} ≤ \textbf{N} ≤ \textbf{131072}, \textbf{1} ≤ \textbf{M} ≤ \textbf{131072}). У наступному рядку задано \textbf{N} цілих чисел \textbf{L_i}, які описують операції \textbf{Insert} (\textbf{1} ≤ \textbf{L_i} ≤ \textbf{M}).
\OutputFile
Виведіть вміст масиву після виконання заданої послідовності операцій \textbf{Insert}. У першому рядку виведіть \textbf{W} - номер останньої не вільної позиції у масиві. Далі виведіть \textbf{W} цілих чисел - \textbf{A\[1\]}, \textbf{A\[2\]}, ..., \textbf{A\[W\]}. Для порожніх комірок виводьте нулі.
Вхідні дані #1
5 4 3 3 4 1 3
Вихідні дані #1
6 4 0 5 2 3 1