#icpc2015summerday2i. [icpc2015summer_day2_i]ツインリバース

[icpc2015summer_day2_i]ツインリバース

Problem Statement

要素数 NN の配列 AA が与えられる。ただし、AA(1,2,...,N)(1,\\ 2,\\ ...,\\ N) の順列である。

次の操作を 00 回以上 10,00010,000 回以下の任意の回数行い、AA(1,2,...,N)(1,\\ 2,\\ ...,\\ N) へソートしたい。

  • 整数 ii (1leqileqN1\\leq i\\leq N) を 11 つ選び、区間 A\[1,\\ i-1\] の要素を逆順にし、区間 A\[i+1,\\ N\] の要素を逆順にする。

ただし、区間 A\[l,\\ r\] とは AAl,l+1,...,rl,\\ l+1,\\ ...,\\ r 番目の位置のことである。

AA(1,2,...,N)(1,\\ 2,\\ ...,\\ N) へソートできるか判定せよ。ソートできるならば、操作の例を一つ出力せよ。

Constraints

  • 1leqNleq3,0001\\leq N\\leq 3,000
  • AA(1,2,...,N)(1,\\ 2,\\ ...,\\ N) の順列である。

Input Format

入力は以下の形式で標準入力から与えられる。

NN A1A_1 A2A_2 ...... ANA_N

Output Format

AA(1,2,...,N)(1,\\ 2,\\ ...,\\ N) へソートできないならば、-1 とだけ一行に出力せよ。

ソートできるならば、操作の例を一つ次のように出力せよ。

  • 11 行目には、操作の回数を表す整数 MM (0leqMleq10,0000\\leq M\\leq10,000) を出力せよ。
  • 22 行目からの MM 行のうち kk 行目には、kk 回目の操作で選ぶ整数 ii (1leqileqN1\\leq i\\leq N) を出力せよ。

Sample Input 1


5
5 1 4 2 3

Sample Output 1


2
3
1

例えば、次のように 22 回の操作を行えばよい。

  • i=3i=3 を選ぶと (5,1,4,2,3)(5,\\ 1,\\ 4,\\ 2,\\ 3)(1,5,4,3,2)(1,\\ 5,\\ 4,\\ 3,\\ 2)
  • i=1i=1 を選ぶと (1,5,4,3,2)(1,\\ 5,\\ 4,\\ 3,\\ 2)(1,2,3,4,5)(1,\\ 2,\\ 3,\\ 4,\\ 5)

Sample Input 2


2
2 1

Sample Output 2


-1

Sample Input 3


3
1 2 3

Sample Output 3


0