\begin{problem}{Key Insertion}{key.in}{key.out}{2 seconds}

As an employee of the Macrohard
Company, you have been asked to implement the new data structure
that would be used to store some integer keys. 

The keys must be stored in a special ordered collection that can be considered as an array $A$,
which has an infinite number of locations, numbered starting from 1. 
Initially all locations are empty. The following operation must be supported by the collection: 
$Insert(L, K)$, where $L$ is the location in the array and $K$ is some positive integer value.

The operation must be processed as follows:

\begin{shortitems}
    \item If $A[L]$ is empty, set $A[L] \gets K$.
    \item If $A[L]$ is not empty, perform $Insert(L+1, A[L])$ and after that set $A[L] \gets K$.
\end{shortitems}

Given $N$ integer numbers $L_1, L_2, \ldots, L_N$ you have to output the
contents of the array after a sequence of the following operations:

{\obeylines\setlength{\parindent}{6mm}\parskip=0mm
$Insert(L_1, 1)$
$Insert(L_2, 2)$
$\dots$
$Insert(L_N, N)$
}


\InputFile

The first line of the input file contains $N$ --- the number of $Insert$ operations
and $M$ --- the maximal position that can be used in the $Insert$ operation ($1 \le N \le 131\,072$,
$1 \le M \le 131\,072$).

Next line contains $N$ integer numbers $L_i$ that describe $Insert$ operations to be performed
($1 \le L_i \le M$).

\OutputFile

Output the contents of the array after a given sequence of $Insert$ operations.
On the first line print $W$ --- the number of the greatest location that is not empty.
After that output $W$ integer numbers --- $A[1], A[2], \ldots, A[W]$. Output zeroes
for empty locations.

\Example

\begin{example}[*]
\exmp{
5 4
3 3 4 1 3
}{
6
4 0 5 2 3 1
}%
\end{example}

\end{problem}
