import sys

def solve(numbers, bit):
    if bit < 0:
        return 0
    mask = 1 << bit
    left = []
    right = []
    for num in numbers:
        if num & mask:
            right.append(num)
        else:
            left.append(num)
    if not left or not right:
        return solve(numbers, bit - 1)
    else:
        option0 = solve(left, bit - 1)
        option1 = solve(right, bit - 1)
        return min(max(option0, mask + option1), max(option1, mask + option0))

def main():
    input = sys.stdin.read().split()
    n = int(input[0])
    a = list(map(int, input[1:n+1]))
    print(solve(a, 30))

if __name__ == "__main__":
    main()