#include <bits/stdc++.h>
#define rep(i,l,r) for(int i=(l);i<=(r);i++)
using namespace std;
typedef long long ll;
typedef double db;
const int N=2e5+24;
int n,c,ans=0;
int o[N],a[N];
bool dp[N][33];
int main()
{
#ifndef ONLINE_JUDGE
freopen("in.in","r",stdin);
freopen("out.out","w",stdout);
#endif
cin>>n>>c;
rep(i,1,n) cin>>o[i]>>a[i];
rep(j,0,32) dp[0][j]=(c>>j)&1;
rep(i,1,n){
rep(j,0,32)
{
int k=(a[i]>>j)&1;
if(o[i]==1) dp[i][j]=dp[i-1][j]&k;
if(o[i]==2) dp[i][j]=dp[i-1][j]|k;
if(o[i]==3) dp[i][j]=dp[i-1][j]^k;
}
}
int ans;
rep(i,1,n)
{
ans=0;
rep(j,0,32)
ans+=(1<<j)*dp[i][j];
cout<<ans<<endl;
}
}