Codeforces Round 443 (Div. 2)
C
Short Program
Codeforces
未评级
原题
← BD →
翻译中…

Petya learned a new programming language CALPAS. A program in this language always takes one non-negative integer and returns one non-negative integer as well.

翻译中…

In the language, there are only three commands: apply a bitwise operation AND, OR or XOR with a given constant to the current integer. A program can contain an arbitrary sequence of these operations with arbitrary constants from $0$ to $1023$. When the program is run, all operations are applied (in the given order) to the argument and in the end the result integer is returned.

翻译中…

Petya wrote a program in this language, but it turned out to be too long. Write a program in CALPAS that does the same thing as the Petya's program, and consists of no more than $5$ lines. Your program should return the same integer as Petya's program for all arguments from $0$ to $1023$.

翻译中…

Input

翻译中…

The first line contains an integer $*n*$ ($1 ≤ *n* ≤ 5·10^{5}$) — the number of lines.

翻译中…

Next $*n*$ lines contain commands. A command consists of a character that represents the operation ("&", "|" or "^" for AND, OR or XOR respectively), and the constant $*x*_{*i*}$ $0 ≤ *x*_{*i*} ≤ 1023$.

翻译中…

Output

翻译中…

Output an integer $*k*$ ($0 ≤ *k* ≤ 5$) — the length of your program.

翻译中…

Next $*k*$ lines must contain commands in the same format as in the input.

翻译中…

Note

翻译中…

You can read about bitwise operations in https://en.wikipedia.org/wiki/Bitwise_operation.

翻译中…

Second sample:

翻译中…

Let $*x*$ be an input of the Petya's program. It's output is $((*x*&1)&3)&5 = *x*&(1&3&5) = *x*&1$. So these two programs always give the same outputs.

翻译中…

样例

Input #1
3
| 3
^ 2
| 1
Output #1
2
| 3
^ 2
InputCopy OutputCopy
Input #2
3
& 1
& 3
& 5
Output #2
1
& 1
InputCopy OutputCopy
Input #3
3
^ 1
^ 2
^ 3
Output #3
0
InputCopy OutputCopy
题目信息
题号
879C
时间限制
2 s
内存限制
256 MB

题面与样例版权归 Codeforces 及出题人所有;中文翻译由 AI 生成(CI 管线),如有出入请以原文为准。