AT_arc180_b [ARC180B] Improve Inversions

Description

[problemUrl]: https://atcoder.jp/contests/arc180/tasks/arc180_b $ (1,2,\cdots,N) $ の順列 $ P=(P_1,P_2,\cdots,P_N) $ が与えられます. また整数 $ K $ も与えられます. あなたはこれから以下の操作を $ 0 $ 回以上行います. - 整数 $ l,r $ ($ 1\ \leq\ l\ \ P_r $ である. - 同じ組 $ (l,r) $ を今までに選んだことが一度もない. - そして,$ P_l $ と $ P_r $ の値を入れ替える. あなたは操作回数を最大化したいです. その方法を一つ求めてください.

Input Format

入力は以下の形式で標準入力から与えられる. > $ N $ $ K $ $ P_1 $ $ P_2 $ $ \cdots $ $ P_N $

Output Format

以下の形式で答えを出力せよ. > $ m $ $ l_1 $ $ r_1 $ $ l_2 $ $ r_2 $ $ \vdots $ $ l_m $ $ r_m $ ただしここで $ m $ は操作回数の最大値であり,$ l_i,r_i $ は $ i $ 回目の操作で選んだ $ l,r $ の値である. 複数の解がある場合は,どれを出力してもよい.

Explanation/Hint

### 制約 - $ 2\ \leq\ N\ \leq\ 500 $ - $ 1\ \leq\ K\ \leq\ N-1 $ - $ (P_1,P_2,\cdots,P_N) $ は $ (1,2,\cdots,N) $ の順列 - 入力される値はすべて整数 ### Sample Explanation 1 この例では操作回数の最大値は $ 3 $ です. 出力例の操作の様子は以下のとおりです. - $ 1 $ 回目の操作: $ (l,r)=(2,3) $ を選ぶ.$ 1\ \leq\ 3-2,\ P_2\ >\ P_3 $ かつ $ (2,3) $ を選んだことはないので条件は満たされている.$ P_2,P_3 $ の値を入れ替え,$ P=(3,1,2) $ になる. - $ 2 $ 回目の操作: $ (l,r)=(1,3) $ を選ぶ.$ 1\ \leq\ 3-1,\ P_1\ >\ P_3 $ かつ $ (1,3) $ を選んだことはないので条件は満たされている.$ P_1,P_3 $ の値を入れ替え,$ P=(2,1,3) $ になる. - $ 3 $ 回目の操作: $ (l,r)=(1,2) $ を選ぶ.$ 1\ \leq\ 2-1,\ P_1\ >\ P_2 $ かつ $ (1,2) $ を選んだことはないので条件は満たされている.$ P_1,P_2 $ の値を入れ替え,$ P=(1,2,3) $ になる.