Іспит#2849

Іспит

1 секунда
256 мегабайтів
Дуже легка

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

— Дивись, Іро, ти підходиш до викладача і пропонуєш наступне: у нас є білетів, які лежать сорочкою догори. Давай перевернемо з них, потім ти ретельно їх перемішуєш і кладеш в одну купу. Після цього ти, тобто ти, із заплющеними очима маєш поділити їх на дві купи так, щоб у кожній купі була однакова кількість білетів, перевернутих лицем догори. При цьому тобі дозволяється: поміняти місцями будь-які два білети з першої купи, перевернути білет у першій купі, або остаточно перекласти білет з першої купи у другу. Всі ці дії виконуються із заплющеними очима, і ти не маєш уявлення про стан білетів, окрім знання числа і пам'яті про всі свої дії. — І що далі? — Якщо вийде — викладач дозволяє відповідати на будь-який відкритий білет. — А якщо ні? — Доведеться вірити в диво. — А чого б тобі самому не спробувати? — Не те щоб у мене репутація хороша. — То вирішив мою зіпсувати? — О, тричі.

Вхідні дані

Задано одне парне число (0 \leq K \leq 18 і парне) — кількість білетів, перевернутих лицем догори (спочатку всі білетів знаходяться у першій купі).

Вихідні дані

Якщо неможливо поділити білети на дві непорожні купи згідно з умовою, виведіть -1. Інакше у першому рядку виведіть кількість дій (0 \leq Q \leq 2^9+36). Далі в рядках опишіть послідовність операцій. Кожен рядок має містити команду одного з трьох типів:

  • swap i j — поміняти місцями білети на позиціях та у першій купі (1 \leq i \neq j \leq 18).

  • rev i — перевернути білет на позиції у першій купі.

  • out i — перекласти білет з позиції з першої купи у другу. Після цієї операції всі білети з першої купи, починаючи з позиції i+1, зміщуються вниз на одну позицію.

Обидві купи мають бути непорожніми й містити однакову кількість білетів лицем догори.

Приклади

Приклад 1

Loading
Loading