#include<bits/stdc++.h> #define MAXM 30 usingnamespace std; inlineintread(){ int x=0,f=1; char ch=getchar(); while (ch<'0'||ch>'9'){ if (ch=='-') f=-1; ch=getchar(); } while (ch>='0'&&ch<='9'){ x=(x<<3)+(x<<1)+(ch^'0'); ch=getchar(); } return x*f; } inlinechargc(){ char ch=getchar(); while (ch!='A'&&ch!='O'&&ch!='X') ch=getchar(); return ch; } intmain(){ int n=read(),m=read(); int f1=0x7fffffff,f0=0; for (registerint i=1;i<=n;++i){ char opr=gc(); int x=read(); if (opr=='A') f0&=x,f1&=x; if (opr=='O') f0|=x,f1|=x; if (opr=='X') f0^=x,f1^=x; } int ans=0; for (registerint i=MAXM;i>=0;--i){ if (f0&(1<<i)){ ans|=(1<<i); } elseif ((1<<i)<=m&&(f1&(1<<i))){ ans|=(1<<i); m-=(1<<i); } } printf("%d\n",ans); }