AT_pakencamp_2023_day1_i Swap and Sort

Description

正整数 $ K $ と長さ $ N $ の正整数列 $ A $ が与えらえます。あなたはこの数列に対して以下の操作を $ 5\times 10^5 $ 回以下行えます。 - 整数 $ i\ (1 \le i \le N-1) $ を選ぶ。 $ A_i $ と $ A_{i+1} $ を swap したのち、 $ A_{i+1} $ に $ K $ を加算する。 最終的な数列が昇順、すなわち $ A_1 \le A_2 \le \ldots \le A_N $ となっているような操作列を一つ見つけてください。なお、この制約下においてこのような操作列が存在することが示せます。

Input Format

入力は以下の形式で標準入力から与えられる。 > $ N $ $ K $ $ A_1 $ $ A_2 $ $ \ldots $ $ A_N $

Output Format

操作回数を $ M (0 \le M \le 5\times 10^5) $ として、 $ M+1 $ 行出力せよ。 $ 1 $ 行目には $ M $ を出力し、 $ k + 1\ (1 \le k \le M) $ 行目には $ k $ 回目に選んだ $ i $ を出力せよ。

Explanation/Hint

### Sample Explanation 1 $ i $ を $ 2,3 $ の順に選んで2回操作を行うことで $ A=(1,1,2,5) $ を得ることができます。 ### Constraints - $ 1 \leq N \leq 1000 $ - $ 1 \le K \le 10^9 $ - $ 1 \le A_i \le 10^9 $ - 入力は全て整数