Перестановки
Саша та Федя грають у цікаву гру. У них є n кубиків, на яких написані різні числа від 1 до n. Хлопчики намалювали на папері n клітинок у ряд і грають за наступними правилами.
Спочатку перший гравець виставляє деякі кубики на клітинки, потім другий гравець виставляє на вільні клітинки кубики, що залишились. Після цього перший гравець робить наступні дії: він дивиться, яке число написано на останньому кубику (нехай це число a) і після цього переставляє останні a кубиків у зворотному порядкеу. Ці дії перший гравець повторяє до тих пір, доки останнім не стане кубик з числом 1.
Наприклад, нехай у хлопців п'ять кубиків. Якщо перший гравець поставив другий і третій кубик на третє та п'яте місце: "..3.2", то другий грацець може розставити кубики, що залишились, так: "41352". У цьому випадку першому гравцю потрібно зробити п'ять дій: "41325", "52314", "54132", "54123", "54321", після чого гра завершиться.
Зараз першим ходив Саша. Допоможіть Феді розсставити кубики так, щоб Саша зробив максимально можливу кількість дій.
Вхідні дані
У вхідному файлі міститься число n (1 ≤ n ≤ 25). Наступні n чисел задають розміщення кубиків після ходу Саши. Число 0 означає, що клітинка вільна, число від 1 до n - номер кубика, який стоїть у цій клітинці. У вхідному файлі не більше 10 нулів.
Вихідні дані
У першому рядку вихідного файлу виведіть максимальну кількість дій, яку прийдеться зробити Саші. У другому рядку виведіть n чисел від 1 до n, де i-е число означає номер кубика, який стоїть у i-ій клітинці після хода Феді. Якщо оптимальних розв'язків декілька, виведіть довільний.