#include<iostream>
#include<cstdio>
#include<cstring>
#include<cmath>
using namespace std;
const int N = 1e5+5;
int a[N][3];
int n,m;
int calc(int a,int op,int b){
if(op == 1){
return a|b;
}else if(op == 2){
return a^b;
}else if(op == 3){
return a&b;
}
}
int f(int t){
int ans = t;
for(int i=1;i<=n;i++){
ans = calc(ans,a[i][1],a[i][2]);
}
return ans;
}
int main(){
scanf("%d%d",&n,&m);
for(int i=1;i<=n;i++){
char s[10];
scanf("%s%d",&s,&a[i][2]);
if(s[0] == 'O'){
a[i][1] = 1;
}else if(s[0] == 'X'){
a[i][1] = 2;
}else if(s[0] == 'A'){
a[i][1] = 3;
}
}
int ans = 0;
for(int i = log2(m)+1;i>=0;i--){
if(ans + (1<<i) <= m && (f(1<<i) & (1<<i))){
ans += (1<<i);
}
}
printf("%d",f(ans));
}