#include <iostream>
#include <bitset>
using namespace std;
int main() {
int n;cin>>n;
for(int i=0;i<n;i++)
{
int o,x,p;cin>>o>>x>>p;
if(o==1)
{
bitset<12> bit(x);
bit = bit<<p;
cout<<bit.to_ullong()<<endl;
}
else if(o==2)
{
const int MASK_12BIT = 0xfff;
int result = (x&MASK_12BIT)>>p;
int high_mask = MASK_12BIT^((1<<(12-p))-1);
result |= high_mask;
cout<<result<<endl;
}
else if(o==3)
{
bitset<12> bit(x);
bit[p] = 0;
cout<<bit.to_ullong()<<endl;
}
else if(o==4)
{
bitset<12> bit(x);
bit[p] = 1;
cout<<bit.to_ullong()<<endl;
}
}
}
// 64 位输出请用 printf("%lld")