Японський комп'ютер
Як відомо, для захисту кордонів японські інженери розробляють величезних бойових людиноподібних роботів. Кожен такий робот керується японським комп'ютером. Зрозуміло, що для підвищення ефективності роботи програма в комп'ютері повинна бути максимально оптимізованою, щоб комп'ютер міг виконувати якомога більше програм за якомога менший час.
Наразі японським програмістам поставили таке завдання (його зміст секретний, тому тут його описувати не можна): спочатку в пам'яті комп'ютера знаходиться єдине число x. Потрібно отримати в його пам'яті наступні числа: a_1x, a_2x, ..., a_nx. При цьому комп'ютер може виконувати наступні операції:
Додавання двох чисел
Віднімання двох чисел
Побітовий зсув вліво (зсув на k біт еквівалентний множенню на 2^k)
Усі отримані проміжні значення зберігаються в пам'яті, так що ними можна користуватися при обчисленні інших значень.
При обчисленнях ніколи не повинно виходити значення більше, ніж 42x. Гарантується, що при дотриманні цього обмеження в комп'ютері не відбувається переповнень. Також комп'ютер не може працювати з від'ємними числами, тому віднімати більше число з меншого також заборонено.
Порядок, у якому в пам'яті з'являтимуться числа a_1x, a_2x, ..., a_nx, не має значення.
Вхідні дані
У першому рядку знаходиться число n - кількість потрібних значень (1 ≤ n ≤ 41). У другому рядку знаходяться n чисел a_i (2 ≤ a_i ≤ 42). Усі a_i різні. Саме число x вам не дано, тому ваша послідовність операцій повинна бути правильною для будь-якого x.
Вихідні дані
У першому рядку виведіть єдине число - мінімальну кількість потрібних операцій. Далі виведіть потрібні операції у наступному форматі:
Зсув вліво ax на k біт: a«k
Додавання ax і bx: a+b
Віднімання ax з bx: b-a
Запис операцій не повинна містити пробілів.