AT_agc014_f [AGC014F] Strange Sorting

Description

[problemUrl]: https://atcoder.jp/contests/agc014/tasks/agc014_f 高橋君はソートをするのが大好きです。 そこで、高橋君は $ 1 $ から $ N $ の順列 $ (p_1,p_2,...,p_N) $ を用意し、この順列が $ (1,2,...,N) $ になるまで以下の操作を繰り返すことにしました。 - まず、順列の各 $ i $ 項目に対して、$ 1 $ 項目から $ i $ 項目までの最大値が $ i $ 項目自身であるような項を「高い項」、そうでない項を「低い項」とする。 - そして、**今の順列で並んでいる順**に、高い項に現れる数を $ a_1,a_2,...,a_k $ 、低い項に現れる数を $ b_1,b_2,...,b_{N-k} $ とする。 - 最後に、順列を $ (b_1,b_2,...,b_{N-k},a_1,a_2,...,a_k) $ と並び替える。 さて、高橋君がソートを完了するまでに何回の操作が必要か求めてください。

Input Format

N/A

Output Format

N/A

Explanation/Hint

### 制約 - $ 1\ ≦\ N\ ≦\ 2×10^5 $ - $ (p_1,p_2,...,p_N) $ は $ 1 $ から $ N $ の順列である。 ### Sample Explanation 1 高橋君ははじめ順列 $ (3,5,1,2,4) $ を持っており、各操作後、順列は以下のようになる。 - $ 1,2 $ 項目が高い項であり、$ 3,4,5 $ 項目が低い項なので、次の順列は $ (1,2,4,3,5) $ になる。 - $ 1,2,3,5 $ 項目が高い項であり、$ 4 $ 項目が低い項なので、次の順列は $ (3,1,2,4,5) $ になる。 - $ 1,4,5 $ 項目が高い項であり、$ 2,3 $ 項目が低い項なので、次の順列は $ (1,2,3,4,5) $ になる。