import sys
# 预计算12位掩码(0xFFF = 4095)
mask_12bit = 0xFFF
data = list(sys.stdin.read().splitlines())
n = int(data[0])
for i in range(1,n+1):
    op,x,p=map(int,data[i].split())
    if op==1:
        x=x<<p
        #保留12位,就对x取余2*12次方即可
        x=x%2**12
        #或者x&mask_12bit
    elif op==2:
        x=x>>p
        #掩码移动左移12-p位(保留12位)再与x相加即可
        x=x+(mask_12bit<<(12-p)&mask_12bit)
    elif op==3:
        #将第p位掩码设为0再&x
        x=x&(mask_12bit-2**p)
    else:
        #1左移p位 | x
        x=x|(1<<p)
    print(x)