def solve(A, b): if b == -1: return 0 u = [a for a in A if not(a & (1 << b))] d = [a ^ (1 << b) for a in A if a & (1 << b)] if len(u) == 0: return solve(d, b-1) if len(d) == 0: return solve(u, b-1) return min(solve(d, b-1), solve(u, b-1)) + (1 << b) def main(): input() # N *A, = map(int, input().split()) print(solve(A, 29)) if __name__ == '__main__': main()