#include<cstring>
#include<iostream>
using namespace std;
long long n, m, ans, tmp;
long long a[1 << 11 + 7][2];
char c[5];
long long calc(int bit, int now)
{
for(int i = 1; i <= n; ++i)
{
int x = (a[i][1] >> bit) & 1;
if(a[i][0] == 1) now &= x;
else if(a[i][0] == 2) now |= x;
else if(a[i][0] == 3) now ^= x;
}
return now;
}
int main(){
scanf("%d%d", &n, &m);
for(int i = 1; i <= n; ++i)
{
scanf("%s%d", c, &a[i][1]);
if(c[0] == 'A') a[i][0] = 1;
else if(c[0] == 'O') a[i][0] = 2;
else a[i][0] = 3;
}
for(int op = 18; op >= 0; --op){
int ans1 = calc(op, 1);
int ans0 = calc(op, 0);
if(ans1 > ans0 && ((ans1 << op) + tmp) <= m)
{
tmp += 1 << op;
ans += ans1 << op;
}
else
ans += (ans0 << op);
}
printf("%d", ans);
return 0;
}
万分感谢Orz!!