func main()
	var n: int :: cui@inputInt()
	var a: []int :: #[n]int
	for i(0, n - 1)
		do a[i] :: cui@inputInt()
	end for
	
	var u: []int :: #[0]int
	var v: []int :: #[0]int
	var minIdx: int :: 0
	for target(1, 100)
		for i(minIdx, n - 1)
			if(a[i] = target)
				if(i <> minIdx)
					do u :~ [minIdx]
					do v :~ [i]
					var t: int :: a[minIdx]
					do a[minIdx] :: a[i]
					do a[i] :: t
				end if
				do minIdx :+ 1
			end if
		end for
	end for
	do cui@print("\{^u}\n")
	do cui@flush()
	for i(0, ^u - 1)
		do cui@print("\{u[i]} \{v[i]}\n")
		do cui@flush()
	end for
	do cui@input()
end func