def f(S=0):
    if Memo[S]!=-1:
        return Memo[S]

    for i in range(N):
        if S&(1<<i)==0:
            break

    X=0
    for j in range(i+1,N):
        if S&(1<<j):
            continue
        X=max(X,(A[i]^A[j])+f(S|(1<<i)|(1<<j)))
    Memo[S]=X
    return X

N=int(input())
A=list(map(int,input().split()))
Memo=[-1]*(1<<N)
Memo[-1]=0
print(f())