Петя выучил новый язык программирования CALPAS. Программа на этом языке всегда принимает на вход одно неотрицательное целое число и возвращает также неотрицательное целое число.
В языке есть только три команды: применить побитовую операцию AND, OR или XOR с данной константой к текущему числу. Программа может содержать произвольную последовательность таких операций с произвольными константами от 0 до 1023. При выполнении программы команды поочередно (в заданном порядке) применяются к аргументу, и возвращается последнее получившееся число.
Петя написал на этом языке программу, однако она получилась слишком длинной. Напишите программу на языке CALPAS, которая делает то же самое, что и Петина программа, и при этом состоит не более чем из 5 команд. Ваша программа должна возвращать тот же результат, что и Петина, для любого аргумента от 0 до 1023.
Выходные данные
Выведите число k (0 ≤ k ≤ 5) — длину вашей программы.
В следующих k строках выведите команды в том же формате, что и во входных данных.
Примечание
Вы можете прочитать про битовые операции в https://ru.wikipedia.org/wiki/Битовые операции.
Второй пример:
Пусть программа приняла на вход число x. Тогда результатом Петиной программы будет ((x&1)&3)&5 = x&(1&3&5) = x&1. Таким образом, результаты программ всегда совпадают.
Примеры
| № | Входные данные | Выходные данные |
|
1
|
3 | 3 ^ 2 | 1
|
2
| 3
^ 2
|
|
2
|
3 & 1 & 3 & 5
|
1
& 1
|
|
3
|
3 ^ 1 ^ 2 ^ 3
|
0
|