Розкладання перестановок
У цій задачі перестановкою з n елементів будемо називати послідовність цілих чисел довжини n, у якій кожне число від 0 до n-1 зустрічається рівно один раз. Позначимо i-ий елемент перестановки p як p_i, де i - індекс від 0 до n-1. Визначимо добуток двох перестановок з n елементів a та b як перестановку c з n елементів, таку, що c_i = a_bi_{ }(відмітимо, що операція добутку перестановок лвво-асоцвативна, тобто операції виконуються зліва направо).
Серед перестановок виділимо клас "подвійних" перестановок. Подвійні перестановки - це перестановки, які можуть бути подані у вигляді об'єднання двох зростаючих послідовностей, які не перетинаються. Наприклад, перестановка (1, 3, 4, 0, 5, 2) є подвійною, так як її можна розбити на дві зростаючі послідовності (1, 3, 4, 5) та (0, 2), а перестановка (5, 1, 3, 4, 0, 2) не є подвійною.
Необхідно написати програму, яка розкладає задану перестановку у добуток плдвійних перестановок. При цьому кількість подвійних перестановок у добутку повтнна бути достатньо малою. Ваша програма повинна знаходити розв'язок, який складається не більше, ніж з 15 подвійних перестановок.
Вхідні дані
У першому рядку міститься число n (2 ≤ n ≤ 20000).
У другому рядку записано n чисел, які задають собою початкову перестановку.
Вихідні дані
Якщо розв'язок при заданих обмеженнях знайти неможливо, виведіть єдине число -1.
Якщо розв'язок існує, у перший рядок виведіть число k - кількість подвійних перестановок у знайденому розв'язку, а у наступних k рядках виведіть самі подвійні перестановки у порядку їх слудування у добутку.