Святкові обчислення за цукровим модулем#11056

Святкові обчислення за цукровим модулем

1 секунда
128 мегабайтів
Складна

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

Мета гри проста: гравцеві даються два числа. Використовуючи калькулятор, потрібно знайти xor . Вираз xor означає застосування операції побітового виключного або (побітового додавання за модулем ) до чисел і . Ця операція є у всіх сучасних мовах програмування, наприклад, у мові C++ і Java вона позначається ˆ, у Pascal — xor.

Калькулятор зберігає в пам'яті всі числа, які були отримані гравцем під час гри, а також вміє додавати числа, віднімати їх, множити або цілочисельно ділити число на . При цьому пам'ять калькулятора, звісно ж, обмежена: він не може зберігати більше цілих чисел. Крім того, всі числа, що зберігаються в калькуляторі, повинні лежати в діапазоні від до 2^{31} - 1 включно. Спочатку в пам'яті калькулятора лежать числа і . Гравець може використовувати лише числа, що зберігаються в пам'яті калькулятора.

Ральф - дуже розумний хлопець, але з Ванілопою знову сталася біда, і він поспішає до неї на допомогу. Тому стати найкращим у грі «Святкові обчислення за цукровим модулем» доведеться саме вам!

Вхідні дані

В одному рядку дано два цілі числа і (1 \le x, y \le 10^9) - числа, які спочатку лежать в пам'яті калькулятора.

Вихідні дані

У першому рядку виведіть кількість дій (1 \le n \le 1000), яке потрібно здійснити гравцеві для перемоги в грі.

У кожному з наступних рядків виведіть спочатку тип дії, яку ви хочете здійснити на поточному кроці:

  • - додати два числа

  • - відняти з першого числа друге

  • - помножити число на

  • - цілочисельно поділити число на .

Якщо тип операції або , далі через пробіл виведіть два числа — номери ітерацій, на яких кожне з використаних чисел було отримано. Якщо тип операції або , виведіть одне число - номер ітерації, на якій використане число було отримано.

Наприклад, щоб відняти з числа, отриманого на ітерації число, отримане на ітерації , слід вивести "2 3 4".

Вважатимемо, що числа і з вхідних даних були отримані на 1-й і 2-й ітераціях відповідно.

Зверніть увагу, що число xor повинно бути отримано на останній ітерації. Від вас не вимагається знайти мінімальний за кількістю дій відповідь.

Приклади

Приклад 1

Loading
Loading

Приклад 2

Loading
Loading