set<ll>s;
ll@q,a[30]{},n=0;
rep(q){
	ll@t;
	if(t==1){
		ll@x;
		if(!s.count(x)){
			s.insert(x);
			rep(i,30){
				a[i]+=x&1;
				x>>=1;
			}
		}
	}
	if(t==2){
		ll@x;
		if(s.count(x)){
			s.erase(x);
			rep(i,30){
				a[i]-=x&1;
				x>>=1;
			}
		}
	}
	if(t==3){
		ll z=-1;
		ll n=s.size();
		if(n){
			z=0;
			rrep(i,30){
				z=z*2+(a[i]==n);
			}
		}
		wt(z);
	}
}