길이 의 순열 이 주어진다.
한 번의 뒤집기에서는 두 정수 을 골라 다음 조건을 만족해야 한다.
- .
- .
그 후 연속한 부분 의 순서를 뒤집는다.
뒤집기를 번 이하로 사용하여 를 오름차순으로 정렬하고, 사용한 뒤집기들을 출력하여라.
Input
입력은 다음과 같은 형식으로 주어진다.
case case case
각 케이스는 다음과 같은 형식으로 주어진다.
Output
각 테스트 케이스마다 첫째 줄에 사용할 뒤집기의 횟수 를 출력한다.
그 다음 개의 줄에 걸쳐, 번 뒤집기에서 고른 두 정수 를 공백으로 구분하여 출력한다.
출력은 다음 조건을 모두 만족해야 한다.
- .
- ().
- ().
- 모든 뒤집기를 출력한 순서대로 적용한 뒤, 순열은 이어야 한다.
가능한 답이 여러 가지라면 아무거나 출력해도 된다.
Constraints
- .
- .
- 는 의 순열이다.
- 모든 테스트 케이스에 대한 의 합은 이하이다.
Subtasks
Samples
입력
2
4
2 1 4 3
5
3 1 2 5 4
출력
8
2 4
1 4
2 3
2 4
1 3
1 4
2 3
1 3
10
2 5
1 4
2 3
1 5
2 4
2 5
1 4
1 5
2 4
1 4
첫 번째 테스트 케이스에서는 모든 구간의 길이가 이상이다. 두 번째 테스트 케이스에서는 모든 구간의 길이가 이상이다. 각 테스트 케이스에서 출력된 뒤집기를 순서대로 적용하면 순열이 오름차순으로 정렬된다.