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;
long long n;
pair<char, int> arr[512345];
pair<char, int> comp[512345];
int main() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  while (cin >> n) {
    for (int i = (0); i < (n); i++) cin >> arr[i].first >> arr[i].second;
    int ands = (1024 - 1);
    int ors = 0;
    int xors = 0;
    for (int b = (0); b < (10); b++) {
      int bit = 1 << b;
      char last = arr[0].first;
      int cons = ((arr[0].second & bit) == bit);
      for (int i = (1); i < (n); i++) {
        char now = arr[i].first;
        int elem = ((arr[i].second & bit) == bit);
        if (last == now) {
          if (now == '|') cons = cons | elem;
          if (now == '&') cons = cons & elem;
          if (now == '^') cons ^= elem;
          continue;
        }
        if (now == '&' && elem == 0) {
          last = '&', cons = 0;
          continue;
        }
        if (now == '|' && elem == 1) {
          last = '|', cons = 1;
          continue;
        }
        if (last == '^' and now == '&') {
          swap(last, now), swap(cons, elem);
        } else if (last == '^' and now == '|') {
          swap(last, now), swap(cons, elem);
        } else if (last == '&' and now == '|') {
          swap(last, now), swap(cons, elem);
        }
        if (last == '&' and now == '^') {
          if (cons == 1 && elem == 1)
            last = '^', cons = 1;
          else if (cons == 1 && elem == 0)
            last = '|', cons = 1;
          else if (cons == 0 && elem == 1)
            last = '&', cons = 1;
          else if (cons == 0 && elem == 0)
            last = '&', cons = 0;
        } else if (last == '|' and now == '^') {
          if (cons == 1 && elem == 1) {
            last = '&';
            cons = 0;
          } else if (cons == 1 && elem == 0) {
            last = '|';
            cons = 1;
          } else if (cons == 0 && elem == 1)
            last = '^', cons = 1;
          else if (cons == 0 && elem == 0)
            last = '^', cons = 0;
        } else if (last == '|' and now == '&') {
          if (cons == 1 && elem == 1)
            last = '|', cons = 1;
          else if (cons == 1 && elem == 0)
            last = '&', cons = 0;
          else if (cons == 0 && elem == 1)
            last = '&', cons = 1;
          else if (cons == 0 && elem == 0)
            last = '&', cons = 0;
        }
      }
      if (last == '&' and cons == 0) ands = ands & ((1024 - 1) - bit);
      if (last == '|' and cons == 1) ors = ors | bit;
      if (last == '^' and cons == 1) xors = xors | bit;
    }
    cout << 3 << endl;
    cout << "& " << ands << endl;
    cout << "| " << ors << endl;
    cout << "^ " << xors << endl;
    return 0;
  }
  return 0;
}
