1
& 0
 1
^ 123
 10
^ 218
& 150
| 935
& 61
| 588
& 897
| 411
| 584
^ 800
| 704
 3
& 1
& 3
& 5
 1
| 123
 1
^ 0
 1
| 1023
 3
& 242
^ 506
^ 522
 10
^ 160
& 1021
& 510
^ 470
& 1022
& 251
& 760
& 1016
| 772
| 515
 1
& 1023
 1
| 0
 2
| 56
^ 875
 1
^ 1023
 2
| 999
^ 689
 3
^ 125
^ 377
& 1019
 1
& 123

3
& 0
| 0
^ 0
 3
& 1023
| 0
^ 123
 3
& 763
| 763
^ 0
 3
& 1
| 0
^ 0
 3
& 1023
| 123
^ 0
 3
& 1023
| 0
^ 0
 3
& 1023
| 1023
^ 0
 3
& 1010
| 768
^ 240
 2
| 775
^ 112
 3
& 1023
| 0
^ 0
 3
& 1023
| 0
^ 0
 3
& 983
| 16
^ 835
 3
& 1023
| 0
^ 1023
 3
& 350
| 326
^ 16
 3
& 1019
| 0
^ 256
 3
& 123
| 0
^ 0

NO_CHANGE = -1
SET_1 = 1
SET_0 = 0
SWITCH = 2


def xor_op(bit_op, value):
    for i in range(10):
        if value & (1 << i):
            if NO_CHANGE == bit_op[i]:
                bit_op[i] = SWITCH
            elif SWITCH == bit_op[i]:
                bit_op[i] = NO_CHANGE
            else:
                bit_op[i] = SET_1 - bit_op[i]
    return bit_op


def or_op(bit_op, value):
    for i in range(10):
        if value & (1 << i):
            bit_op[i] = SET_1
    return bit_op


def and_op(bit_op, value):
    for i in range(10):
        if not value & (1 << i):
            bit_op[i] = SET_0
    return bit_op



def and_op_answer(bit_op):
    value = int('1111111111', 2)
    for i in range(10):
        if bit_op[i] == SET_0:
            value ^= 1 << i
    return '' if value == int('1111111111', 2) else "& {}\n".format(value)

def or_op_answer(bit_op):
    value = 0
    for i in range(10):
        if bit_op[i] == SET_1:
            value ^= 1 << i
    return '' if value == 0 else "| {}\n".format(value)

def xor_op_answer(bit_op):
    value = 0
    for i in range(10):
        if bit_op[i] == SWITCH:
            value ^= 1 << i
    return '' if value == 0 else "^ {}\n".format(value)

n = input()

bit_op = [NO_CHANGE] * 10

for i in range(0, n):
    op, value = raw_input().split()
    value = int(value)
    if op == '^':
        bit_op = xor_op(bit_op, value)
    elif op == '|':
        bit_op = or_op(bit_op, value)
    else:
        bit_op = and_op(bit_op, value)

answer = or_op_answer(bit_op) + and_op_answer(bit_op) + xor_op_answer(bit_op)
print "{}\n{}".format(answer.count("\n"), answer)
