#abc233f. [abc233_f]Swap and Sort

[abc233_f]Swap and Sort

問題文

(1,2,ldots,N)(1,2,\\ldots,N) を並び替えた長さ NN の順列 P=(P1,P2,ldots,PN)P=(P_1,P_2,\\ldots,P_N) があります。

あなたが可能な操作は MM 種類あり、操作 ii は「 PPaia_i 番目の要素と PPbib_i 番目の要素を入れ替える」というものです。

操作を好きな順序で、合計 5times1055\\times 10^5 回以下行うことによって、PP を昇順に並び替えることはできますか?

できるならば、操作手順を 11 つ教えてください。できないならばその旨を伝えてください。

制約

  • 2leqNleq10002\\leq N \\leq 1000
  • PP(1,2,ldots,N)(1,2,\\ldots,N) を並び替えた順列
  • $1\\leq M \\leq \\min(2\\times 10^5, \\frac{N(N-1)}{2})$
  • 1leqailtbileqN1\\leq a_i \\lt b_i\\leq N
  • ineqji\\neq j ならば (ai,bi)neq(aj,bj)(a_i,b_i)\\neq (a_j,b_j)
  • 入力に含まれる値は全て整数

入力

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

NN P1P_1 P2P_2 ldots\\ldots PNP_N MM a1a_1 b1b_1 a2a_2 b2b_2 vdots\\vdots aMa_M bMb_M

出力

PP を昇順に並び替えることができるならば以下の形式で出力せよ。

KK c1c_1 c2c_2 ldots\\ldots cKc_K

ここで、KK は操作の回数を表し、ci(1leqileqK)c_i(1\\leq i \\leq K)ii 回目に行う操作が操作 cic_i であることを表す。
0leqKleq5times1050\\leq K \\leq 5\\times 10^5 を満たさなければならないことに注意せよ。

PP を昇順に並び替えることができないならば、-1 と出力せよ。


入力例 1

6
5 3 2 4 6 1
4
1 5
5 6
1 2
2 3

出力例 1

3
4 2 1

PP は、$(5,3,2,4,6,1)\\to (5,2,3,4,6,1)\\to (5,2,3,4,1,6)\\to (1,2,3,4,5,6)$ と変化します。


入力例 2

5
3 4 1 2 5
2
1 3
2 5

出力例 2

-1

PP を昇順に並び替えることはできません。


入力例 3

4
1 2 3 4
6
1 2
1 3
1 4
2 3
2 4
3 4

出力例 3

0

初めから PP が昇順に並んでいることもあります。

また、以下のような答えも正解になります。

4
5 5 5 5

操作の回数を最小化する必要はないことに注意してください。