Профессор Иванов рассказал профессору Петрову, что придумал новый способ 
сортировки. В его основе лежит следующая функция change.
change(a: integer)
begin
	for j := 0 to n - 1 do
	begin
		if p[j] = a then
			k := j
	end
	swap(k, (k + p[k]) mod n)
end
Функция swap(i, j) меняет местами элементы массива pi и pj.
Профессор Иванов утверждает, что любой массив p0, …, 
pn − 1, являющийся перестановкой целых чисел 1, ..., n,
можно упорядочить по возрастанию, несколько раз вызвав функцию change. 
Нужно только правильно подобрать для каждого вызова функции в качестве её 
аргумента a целое число в пределах от 1 до n.
Профессор Петров верит коллеге, но он не очень хорошо понял, как работает алгоритм.
Поэтому он предложил перестановку p0, …, pn − 1 и попросил
профессора Иванова отсортировать её по возрастанию с помощью функции 
change.
Исходные данные
В первой строке записано целое число n (1 ≤ n ≤ 500). 
Во второй строке записаны целые числа p0, …, pn − 1 в пределах от 1 до n — 
перестановка, предложенная профессором Петровым.
Результат
Если профессор Иванов не сможет с помощью функции change отсортировать 
массив p0, …, pn − 1 по возрастанию, выведите «Impossible». В 
противном случае выведите в первой строке число m — количество вызовов 
функции (0 ≤ m ≤ 106). В следующих m строках выведите 
аргументы, которые нужно подавать на вход функции change.  
Гарантируется, что если массив можно отсортировать по возрастанию, то это можно 
сделать не более чем за 106 вызовов функции.
Пример
| исходные данные | результат | 
|---|
| 5
1 3 5 2 4
 | 3
4
3
3
 | 
Автор задачи: Ольга Соболева (подготовка — Денис Дублённых)
Источник задачи: Ural FU contest. Kontur Cup. Petrozavodsk training camp. Winter 2013