import sys def main(): input = sys.stdin.read data = list(map(int, input().split())) N = data[0] A_prime = data[1:N+1] ans = [] A = [] prev_ans = 0 K = 200 # Heuristic value for i in range(N): current = A_prime[i] ^ prev_ans if i != 0 else A_prime[i] A.append(current) max_median = current # The subarray of length 1 # Consider subarrays of length up to K start = max(0, i - K + 1) for j in range(start, i): # subarray A[j..i] m = i - j + 1 k = (m + 1) // 2 # We need to get the k-th smallest element # To avoid sorting each time, we can maintain a list and use a selection algorithm # But since m is small (<= K), sorting is acceptable sub = A[j:i+1] sub_sorted = sorted(sub) median = sub_sorted[k-1] if median > max_median: max_median = median ans.append(max_median) prev_ans = max_median for a in ans: print(a) if __name__ == '__main__': main()