**Problem**

As an employee of the Amaze-Combines-with-Magicpig(ACM) company, **Kinfkong** has been asked 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 a positive integer value.

The operation must be processed as follows:

If A[L] is empty, set A[L] <- K.

If A[L] is not empty, perform Insert(L + 1, K).

These days **Kinfkong** is too busy, so he asks
you to help him!

Given N integer numbers L1 , L2 , . . . , LN, you have to output the contents
of the array after a sequence of the following operations:

Insert(L1 , 1)

Insert(L2 , 2)

. . .

Insert(LN , N)

**Input**

The first line of the input file contains N --- the number of Insert operations
(1 <= N <= 100000).

Next line contains N integer numbers Li that describe Insert operations to be
performed (1 <= Li <= N ).

A line which contains a single 0 will end the input.

**Output**

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], . . . , A[W]
,separated by a single space. Output zeroes for empty locations.

**Sample**
**Input**

5

3 3 4 1 3

0

**Sample Output**

6

4 0 1 2 3 5

**Author:** Mathematica