#include <bits/stdc++.h>
using namespace std;
int a, b = 1023;
int op1[15], op2[15], op3[15];
int main() {
  int n;
  scanf("%d", &n);
  for (int i = 1; i <= n; ++i) {
    char op[2];
    int x;
    scanf("%s%d", op, &x);
    if (op[0] == '|') a |= x, b |= x;
    if (op[0] == '&') a &= x, b &= x;
    if (op[0] == '^') a ^= x, b ^= x;
  }
  for (int i = 0; i < 15; ++i) op1[i] = 1;
  for (int i = 0; i < 10; ++i) {
    int ai = (a >> i) & 1;
    int bi = (b >> i) & 1;
    if (ai == 0 && bi == 0) {
      op1[i] = 0;
    } else if (ai == 1 && bi == 0) {
      op2[i] = 1;
    } else if (ai && bi) {
      op3[i] = 1;
    }
  }
  int c1 = 0, c2 = 0, c3 = 0;
  for (int i = 0; i < 10; ++i) {
    if (op1[i]) c1 += 1 << i;
    if (op2[i]) c2 += 1 << i;
    if (op3[i]) c3 += 1 << i;
  }
  printf("3\n& %d\n^ %d\n| %d\n", c1, c2, c3);
  return 0;
}
