def f(A, d): if d < 0: return 0 L = [[], []] for i in range(len(A)): L[(A[i] >> d) & 1].append(A[i]^((1 << d)*((A[i] >> d) & 1))) if len(L[0]) == 0: return f(L[1], d-1) if len(L[1]) == 0: return f(L[0], d-1) return (1 << d) + min(f(L[0], d-1), f(L[1], d-1)) N = int(input()) A = list(set(map(int, input().split()))) print(f(A, 65))