# セグメントツリーでfuncをANDにすればいいか # いや、セグメントツリーにするリストがない、または、長くなりすぎる # setでどの数字があるかを管理、31桁のバイナリに1が何回出てきたかを管理でどうか binary_count = [0]*33 visited = set() add = 0 Q = int(input()) for q in range(Q): query = list(map(int, input().split())) if query[0] == 1: x = query[1] if x not in visited: visited.add(x) add += 1 for shift in range(32): if x>>shift & 1 == 1: binary_count[32-shift] += 1 elif query[0] == 2: x = query[1] if x in visited: visited.discard(x) add -= 1 for shift in range(32): if x>>shift & 1 == 1: binary_count[32-shift] -= 1 elif query[0] == 3: if len(visited) == 0: print(-1) elif add == 0: print(0) else: ans = 0 for i in range(32, -1, -1): if binary_count[i] == add: ans += 2**(32-i) print(ans) #print('add', add, 'visited', visited, 'binary_count', binary_count)