Злам шифру#6283

Злам шифру

2 секунди
256 мегабайтів
Складна

Алан захоплюється розгадуванням шифрів і кодових замків. Цього разу він зіткнувся з надзвичайно складним замком, для якого не зміг знайти ключ, тому вирішив перебрати всі можливі комбінації, щоб дізнатися код.

Замок має кнопок, пронумерованих від до . Замок відкривається лише тоді, коли певна послідовність із натискань утворює секретну перестановку. Кнопки потрібно натискати по черзі, одночасне натискання кількох кнопок неможливе.

Більш формально: припустимо, що Алан натиснув кнопки разів. Нехай a_i (1 \leq i \leq k) — це номер кнопки, яку Алан натиснув -м за рахунком, а b_1, b_2, ..., b_n — секретна перестановка. Замок відкриється, якщо існує таке число (1 \leq x \leq k - n + 1), що b_1 = a_x, b_2 = a_{x+1}, ..., b_n = a_{x+n-1}.

Алан хоче створити універсальну послідовність натискань, яка відкриє замок для будь-якої секретної перестановки. Він також прагне, щоб ця послідовність не була занадто довгою, тобто її довжина не перевищувала , де n! = 1 \cdot 2 \cdot ... \cdot n. Наприклад, для n = 3 довжина послідовності не повинна перевищувати .

Допоможіть Алану знайти таку послідовність.

Вхідні дані

У єдиному рядку вхідного файлу задано ціле число (1 \leq n \leq 9) — кількість кнопок на кодовому замку.

Вихідні дані

У першому рядку вихідного файлу виведіть число (0 \leq k \leq 2n!) — довжину універсальної послідовності. У другому рядку виведіть цілих чисел a_i, розділених пробілами (1 \leq a_i \leq n) — порядок натискання кнопок. Зверніть увагу, що достатньо вивести будь-яку послідовність довжини не більше , мінімізувати довжину не потрібно. Гарантується, що така послідовність існує для будь-якого .

Приклади

Приклад 1

Loading
Loading