Interview Queue

아직 제출이 없습니다시간 제한4초메모리 제한1024 MB

문제

A very popular position has just opened up at Poodle Inc. Candidates have formed a queue while they wait for their turn to be interviewed.

Competition is fierce and each candidate knows that they will not be selected if another candidate is strictly better than them. Every minute, each candidate looks at the resumé of candidates who are currently adjacent to them in the queue (ahead and behind). If at least one of the neighbour's resumé's perceived value is strictly greater than their resumé's perceived value, they leave the queue since they do not want to waste their time. The candidates all look at their neighbor's resumé simultaneously, and then some candidates leave the queue simultaneously.

This process continues until no more candidates leave the queue. Determine the number of minutes that pass while this process takes place. Report the values of the candidates that leave the queue in each round. Also report the final state of the queue.

입력

The first line of input contains a single integer NN (1N100,0001 \leq N \leq 100\\,000), which is the number of candidates.

The second line contains NN integers v_1,,v_Nv\_1, \ldots, v\_N (0v_i1090 \leq v\_i \leq 10^9 for each 1iN1 \leq i \leq N), where v_iv\_i is the perceived value of the ithi^\textrm{th} candidate.

출력

Display MM, the number of minutes taken by this process. Then display MM lines. The ithi^\textrm{th} line should contain the perceived values of the candidates who left the queue in the ithi^\textrm{th} minute in the same relative order that they appeared in the queue. Finally display a line indicating the final list of perceived values in the queue after candidates no longer leave it.