spoj#IZHONYT. New Year Train
New Year Train
On the New Year Eve, a government of one country decided to send a train with gifts to each of its towns. For each of the N towns exactly one wagon with gifts was sent. The route was organized in such way
that at each place the last wagon would be detached and train would continue on it's way, until all gifts were delivered.
Just before the departure it turned out that the loading workers did not pay attention to numeration of
the wagons and loaded the gifts in random order. It was impossible to detach a wagon
from the middle of the train and there was no time to rearrange gifts.
Luckily, there was a depot with parallel tracks. At the entrance of the depot each wagon could be directed
to any of the tracks and wagons could leave the depot from the other side in the right sequences 1, 2, 3,
4, and so on. Note that we will then be leaving presents in towns in the reversed order (..., 4, 3, 2, 1).
For example, let's say we have a train with wagons in the following order: 2, 5, 1, 4, 6, 3. Wagons 2, 5, 6 could be directed to the first track; wagons 1, 4 to the second
one and wagon 3 to the third. In this case wagons could leave the depot
in the right order.
Fortunately, there were enough tracks in the depot to rearrange the train.
Input
First line of the input contains two integers N and M: the number of wagons in the train and the
number of tracks in the depot respectively (1 <= N <= 800 000, 1 <= M <= 100 000, M <= N). Second
line contains N integers: sequence of wagons before the entrance to the depot.
It's guaranteed that solution always exists.
Output
First line of the output must contain N integers: number of track that should be chosen for each wagon from
input sequence (tracts are numbered from 1 to M). On the second line print the number of tracks in order the wagons should leave the depot to result in the sequence 1, 2, 3, and so on. If multiple solutions exists, print the one that results in lexicographically smallest sequence in the first line of the output.
Example
Input 6 3 2 5 1 4 6 3 Output 1 1 2 2 1 3 2 1 3 2 1 1