寄寄子的生日
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
Special Judge, 64bit IO Format: %lld

题目描述


"我的梦想是成为马娘偶像!"在逃亡者SISTERS不断发展壮大的同时,醒目飞鹰也在一步步的接近她的梦想。
4 月 4 日,为了庆祝醒目飞鹰的生日,朋友们为她订购了一个大蛋糕。
注视着大快朵颐的醒目飞鹰,联想起她惨淡的文化成绩,荣进闪耀一把抢过蛋糕。
"飞鹰子,答对下面的问题后才可以继续吃蛋糕哦~"
"现在飞鹰子有一串 的排列 a ,如果两个数 a_i,a_j 互质,你就可以交换它们的位置。那么飞鹰子你能够在 次交换内,将这串排列按从小到大排序吗?"
"寄!"
茫然地抬起头,醒目飞鹰下意识地回答道。
排列:一串 的排列指一个长为 n-1 的序列,满足 2n 每个数出现且仅出现一次。
互质:如果两个正整数 a,b 的最大公约数等于 1,那么称这两个正整数是互质的。

输入描述:

第一行一个整数 ,表示给出一个  的排列。
第二行 n-1 个整数 ,表示具体的排列。

输出描述:

第一行输出一个整数  ,表示交换的次数。
接下来 m 行,每行两个整数 ,表示交换第 i 个位置上的数和第 j 个位置上的数。
你可以输出任意一个满足上述限制的答案。注意,你不需要最小化 m.
示例1

输入

复制
6
4 5 2 6 3

输出

复制
5
2 1
1 3
3 2
2 5
5 4

说明

对于样例一,我们有如下解释。
初始排列为 \texttt{4 5 2 6 3} ,接下来每次交换后,有:
①\quad \texttt{5 4 2 6 3}\\<br />②\quad \texttt{2 4 5 6 3}\\<br />③\quad \texttt{2 5 4 6 3}\\<br />④\quad \texttt{2 3 4 6 5}\\<br />⑤\quad \texttt{2 3 4 5 6}\\