def solve(N, A): if all(a == 0 for a in A): return 1<>e)&1 for i in range(1, N+1)] B = [(a>>e)&1 for a in A] ng = [0, 0] for i, b in zip(I, B): if i == 0 and b == 1: ng[0] = ng[1] = 1 if i == 1 and b == 0: ng[1] = 1 if i == 1 and b == 1: ng[0] = 1 if not ng[0]: return 0 if not ng[1]: return 1 return -1 maxbitlen = int.bit_length(max(N, max(A))) + 2 res = 0 for e in range(maxbitlen): x = resolve(e) if x == -1: return -1 res |= x<