import sys def main(): input = sys.stdin.read().split() N = int(input[0]) a_prime = list(map(int, input[1:N+1])) ans = [] A = [] for i in range(N): if i == 0: a_i = a_prime[i] else: a_i = a_prime[i] ^ ans[-1] A.append(a_i) max_med = a_i elements = [] # Check the last 200 elements (empirically chosen) for j in range(i, max(-1, i - 200), -1): elements.append(A[j]) if len(elements) > 200: # Limit the elements considered to avoid TLE break sorted_elements = sorted(elements) m = len(sorted_elements) k = (m + 1) // 2 - 1 # 0-based index current_med = sorted_elements[k] if current_med > max_med: max_med = current_med ans.append(max_med) for val in ans: print(val) if __name__ == "__main__": main()