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

#include <bits/stdc++.h>
using namespace std;
int main() {
  cin.tie(NULL);
  ios::sync_with_stdio(false);
  ;
  int n, i;
  cin >> n;
  int t1 = 0, t2 = 1023;
  for (i = 0; i < n; i++) {
    char op;
    int con;
    cin >> con;
    cin >> op;
    if (op == '&') {
      t1 &= con;
      t2 &= con;
    }
    if (op == '|') {
      t1 |= con;
      t2 |= con;
    }
    if (op == '^') {
      t1 ^= con;
      t2 ^= con;
    }
  }
  if (t1 == 0 && t2 == 1023) {
    cout << 0 << endl;
  } else {
    int an = 1023, o = 0, x = 0;
    for (i = 0; i < 10; i++) {
      int b1 = ((t1 >> i) & 1);
      int b2 = ((t2 >> i) & 1);
      if (b1 == 0 && b2 == 0) {
        an -= (1 << i) - 1;
      }
      if (b1 == 1 && b2 == 1) {
        o += (1 << i);
      }
      if (b1 == 1 && b2 == 0) {
        x += (1 << i);
      }
    }
    cout << 3 << endl;
    cout << "& " << an << endl;
    cout << "| " << o << endl;
    cout << "^ " << x << endl;
  }
  return 0;
}
