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))