N = int(input()) b_list = list(map(int, input().split())) max_b = max(b_list) max_bit = 1 while max_b > 1: # print(max_b) max_bit += 1 max_b >>= 1 # print(max_bit) r = 0 for n in range(max_bit): k = 2**n if b_list[k - 1] == 2**n: r += 2**n else: continue is_true = True for n in range(N): if (n + 1) & r == b_list[n]: continue else: is_true = False if is_true: print(r) else: print(-1)