#include <bits/stdc++.h>
using namespace std;
int main(){
ios::sync_with_stdio(false);
cin.tie(nullptr);
int n;
cin >> n;
// Read the sequence of operations
vector<pair<char,int>> ops(n);
for(int i = 0; i < n; i++){
cin >> ops[i].first >> ops[i].second;
}
// We'll build the three masks bit by bit.
int AND_mask = 1023; // 10 bits of 1
int OR_mask = 0;
int XOR_mask = 0;
// For each bit position 0..9:
for(int bit = 0; bit < 10; bit++){
// Simulate starting from 0 and from 1.
int v0 = 0, v1 = 1;
for(auto &op : ops){
char c = op.first;
int x = (op.second >> bit) & 1;
if(c == '&'){
v0 &= x;
v1 &= x;
} else if(c == '|'){
v0 |= x;
v1 |= x;
} else { // '^'
v0 ^= x;
v1 ^= x;
}
}
// Decide what our combined masks must do to reproduce (v0, v1):
if(v0 == 0 && v1 == 0){
// force 0: AND=0, OR=0, XOR=0
AND_mask &= ~(1<<bit);
// OR_mask bit stays 0
// XOR_mask bit stays 0
}
else if(v0 == 0 && v1 == 1){
// identity: AND=1, OR=0, XOR=0
// all masks already have these defaults
}
else if(v0 == 1 && v1 == 0){
// invert: AND=1, OR=0, XOR=1
XOR_mask |= (1<<bit);
}
else if(v0 == 1 && v1 == 1){
// force 1: AND=1, OR=1, XOR=0
OR_mask |= (1<<bit);
}
}
// Collect the result operations
vector<pair<char,int>> result;
if(AND_mask != 1023) result.push_back({'&', AND_mask});
if(OR_mask != 0) result.push_back({'|', OR_mask});
if(XOR_mask != 0) result.push_back({'^', XOR_mask});
// Output
cout << result.size() << "\n";
for(auto &p : result){
cout << p.first << " " << p.second << "\n";
}
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CgppbnQgbWFpbigpewogICAgaW9zOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOwogICAgY2luLnRpZShudWxscHRyKTsKCiAgICBpbnQgbjsKICAgIGNpbiA+PiBuOwoKICAgIC8vIFJlYWQgdGhlIHNlcXVlbmNlIG9mIG9wZXJhdGlvbnMKICAgIHZlY3RvcjxwYWlyPGNoYXIsaW50Pj4gb3BzKG4pOwogICAgZm9yKGludCBpID0gMDsgaSA8IG47IGkrKyl7CiAgICAgICAgY2luID4+IG9wc1tpXS5maXJzdCA+PiBvcHNbaV0uc2Vjb25kOwogICAgfQoKICAgIC8vIFdlJ2xsIGJ1aWxkIHRoZSB0aHJlZSBtYXNrcyBiaXQgYnkgYml0LgogICAgaW50IEFORF9tYXNrID0gMTAyMzsgIC8vIDEwIGJpdHMgb2YgMQogICAgaW50IE9SX21hc2sgID0gMDsKICAgIGludCBYT1JfbWFzayA9IDA7CgogICAgLy8gRm9yIGVhY2ggYml0IHBvc2l0aW9uIDAuLjk6CiAgICBmb3IoaW50IGJpdCA9IDA7IGJpdCA8IDEwOyBiaXQrKyl7CiAgICAgICAgLy8gU2ltdWxhdGUgc3RhcnRpbmcgZnJvbSAwIGFuZCBmcm9tIDEuCiAgICAgICAgaW50IHYwID0gMCwgdjEgPSAxOwogICAgICAgIGZvcihhdXRvICZvcCA6IG9wcyl7CiAgICAgICAgICAgIGNoYXIgYyA9IG9wLmZpcnN0OwogICAgICAgICAgICBpbnQgeCA9IChvcC5zZWNvbmQgPj4gYml0KSAmIDE7IAogICAgICAgICAgICBpZihjID09ICcmJyl7CiAgICAgICAgICAgICAgICB2MCAmPSB4OwogICAgICAgICAgICAgICAgdjEgJj0geDsKICAgICAgICAgICAgfSBlbHNlIGlmKGMgPT0gJ3wnKXsKICAgICAgICAgICAgICAgIHYwIHw9IHg7CiAgICAgICAgICAgICAgICB2MSB8PSB4OwogICAgICAgICAgICB9IGVsc2UgeyAvLyAnXicKICAgICAgICAgICAgICAgIHYwIF49IHg7CiAgICAgICAgICAgICAgICB2MSBePSB4OwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIC8vIERlY2lkZSB3aGF0IG91ciBjb21iaW5lZCBtYXNrcyBtdXN0IGRvIHRvIHJlcHJvZHVjZSAodjAsIHYxKToKICAgICAgICBpZih2MCA9PSAwICYmIHYxID09IDApewogICAgICAgICAgICAvLyBmb3JjZSAwOiBBTkQ9MCwgT1I9MCwgWE9SPTAKICAgICAgICAgICAgQU5EX21hc2sgJj0gfigxPDxiaXQpOwogICAgICAgICAgICAvLyBPUl9tYXNrIGJpdCBzdGF5cyAwCiAgICAgICAgICAgIC8vIFhPUl9tYXNrIGJpdCBzdGF5cyAwCiAgICAgICAgfQogICAgICAgIGVsc2UgaWYodjAgPT0gMCAmJiB2MSA9PSAxKXsKICAgICAgICAgICAgLy8gaWRlbnRpdHk6IEFORD0xLCBPUj0wLCBYT1I9MAogICAgICAgICAgICAvLyBhbGwgbWFza3MgYWxyZWFkeSBoYXZlIHRoZXNlIGRlZmF1bHRzCiAgICAgICAgfQogICAgICAgIGVsc2UgaWYodjAgPT0gMSAmJiB2MSA9PSAwKXsKICAgICAgICAgICAgLy8gaW52ZXJ0OiBBTkQ9MSwgT1I9MCwgWE9SPTEKICAgICAgICAgICAgWE9SX21hc2sgfD0gKDE8PGJpdCk7CiAgICAgICAgfQogICAgICAgIGVsc2UgaWYodjAgPT0gMSAmJiB2MSA9PSAxKXsKICAgICAgICAgICAgLy8gZm9yY2UgMTogQU5EPTEsIE9SPTEsIFhPUj0wCiAgICAgICAgICAgIE9SX21hc2sgfD0gKDE8PGJpdCk7CiAgICAgICAgfQogICAgfQoKICAgIC8vIENvbGxlY3QgdGhlIHJlc3VsdCBvcGVyYXRpb25zCiAgICB2ZWN0b3I8cGFpcjxjaGFyLGludD4+IHJlc3VsdDsKICAgIGlmKEFORF9tYXNrICE9IDEwMjMpIHJlc3VsdC5wdXNoX2JhY2soeycmJywgQU5EX21hc2t9KTsKICAgIGlmKE9SX21hc2sgICE9ICAgIDApIHJlc3VsdC5wdXNoX2JhY2soeyd8JywgT1JfbWFza30pOwogICAgaWYoWE9SX21hc2sgIT0gICAgMCkgcmVzdWx0LnB1c2hfYmFjayh7J14nLCBYT1JfbWFza30pOwoKICAgIC8vIE91dHB1dAogICAgY291dCA8PCByZXN1bHQuc2l6ZSgpIDw8ICJcbiI7CiAgICBmb3IoYXV0byAmcCA6IHJlc3VsdCl7CiAgICAgICAgY291dCA8PCBwLmZpcnN0IDw8ICIgIiA8PCBwLnNlY29uZCA8PCAiXG4iOwogICAgfQoKICAgIHJldHVybiAwOwp9Cg==