#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")