#ZF1084. 区间反转

区间反转

Description

jbgg 有一个长为 nn 的排列,jbgg 每次只能在排列中选择任意一段连续区间进行反转。比如:a=[1,2,3,4,5]a = [1, 2, 3, 4, 5],选择区间 [2,4][2, 4] 进行反转后,a=[1,4,3,2,5]a = [1, 4, 3, 2, 5]

jbgg 想用不超过 2n2n 次操作使得该排列递增,请你帮助他。只要在你的输出结束后能使排列递增即可通过。

排列:一个长为 nn 的排列是一个有 nn 个数字的集合,数字 11nn 在集合中都出现且仅出现一次。比如:[1,3,4,2,5][1,3,4,2,5] 是一个排列,但 [3,2,1,4,6][3,2,1,4,6] 不是一个排列。

Format

Input

第一行一个正整数 nn (1n2×105)(1\leqslant n \leqslant 2 \times 10^5),表示排列长度。

第二行 nn 个正整数 a1,a2,,ana_1, a_2, \cdots, a_n (1ain)(1 \leqslant a_i \leqslant n),表示给定的排列。

Output

第一行一个正整数 tt,表示你的操作次数。

接下来 tt 行,每行两个正整数 l,rl,r (1lrn)(1\leqslant l \leqslant r \leqslant n),表示本次操作中要反转的区间,数与数之间用空格隔开。

本题有 SPJ,任意的合法解都可通过。

Samples

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

Notes

第一个样例中:

  • 选择区间 [2,3][2, 3] 反转,结果为 [1,2,4,3,5][1,2,4,3,5]
  • 选择区间 [3,4][3, 4] 反转,结果为 [1,2,3,4,5][1,2,3,4,5]

第二个样例中,排列本身已经有序,无需操作。

Limitation

1s, 256MB for each test case.