bit=[0 for _ in range(30)] q=int(input()) S=set() for _ in range(q): A=list(map(int,input().split())) if A[0]==1: x=A[1] if x in S: continue S.add(x) cnt=0 while(x>0): bit[cnt]+=x%2 x//=2 cnt+=1 if A[0]==2: x=A[1] if x not in S: continue S.remove(x) cnt=0 while(x>0): bit[cnt]-=x%2 x//=2 cnt+=1 if A[0]==3: L=len(S) if L==0: print(-1) continue cnt=0 b_and=0 for i in range(30): if bit[i]==L: b_and+=2**i print(b_and)