Зеник і марсіанська перестановка
Limits: 2 sec., 256 MiB
Зеник отримав марсіанську перестановку p із чисел від 1 до n у подарунок від Ілони.
Число k називається добрим, якщо Зеник може посортувати отриману перестановку, виконавши довільну кількість разів таку операцію: вибрати i та поміняти місцями pi та pi+k.
Допоможіть Зенику визначити всі натуральні числа, які є добрими.
Input
У першому рядку задано ціле число n — розмір перестановки.
У другому рядку задано n цілих чисел pi — перестановку.
Output
У першому рядку виведіть ціле число m — кількість добрих чисел.
У другому рядку виведіть m цілих чисел — добрі числа в порядку зростання.
Constraints
2≤n≤105,
1≤pi≤n,
існує такий індекс i, що pi≠i,
для 60% тестів виконується додаткове обмеження: n≤2000.
Samples
Input (stdin) | Output (stdout) |
---|---|
3 3 2 1 | 2 1 2 |
Input (stdin) | Output (stdout) |
---|---|
7 7 5 3 6 2 4 1 | 1 1 |
Source: Шкільна олімпіада 2021