import sys,random,bisect from collections import deque,defaultdict from heapq import heapify,heappop,heappush from itertools import permutations from math import log,gcd input = lambda :sys.stdin.readline() mi = lambda :map(int,input().split()) li = lambda :list(mi()) def maximum_suffix_median_online(N,A): if N==1: return [A[0]] A[1] ^= A[0] res = [A[i] for i in range(N)] que = [[] for p in range(2)] for i in range(2,N): A[i] ^= res[i-1] p = i&1 heappush(que[p],-A[i-1]) heappush(que[p],-A[i-2]) heappop(que[p]) res[i] = max(A[i],-que[p][0]) return res N = int(input()) A = [int(input()) for i in range(N)] print(*maximum_suffix_median_online(N,A),sep="\n")