Bike loves looking for the second maximum element in the sequence. The second maximum element in the sequence of distinct numbers *x*<sub class="lower-index">1</sub>, *x*<sub class="lower-index">2</sub>, ..., *x*<sub class="lower-index">*k*</sub> (*k* &gt; 1) is such maximum element *x*<sub class="lower-index">*j*</sub>, that the following inequality holds: <img align="middle" class="tex-formula" src="https://espresso.codeforces.com/41e9a774451aa769280692592b29103e0a6ecf97.png" style="max-width: 100.0%;max-height: 100.0%;"/>.

The lucky number of the sequence of distinct positive integers *x*<sub class="lower-index">1</sub>, *x*<sub class="lower-index">2</sub>, ..., *x*<sub class="lower-index">*k*</sub> (*k* &gt; 1) is the number that is equal to the bitwise excluding OR of the maximum element of the sequence and the second maximum element of the sequence.

You've got a sequence of distinct positive integers *s*<sub class="lower-index">1</sub>, *s*<sub class="lower-index">2</sub>, ..., *s*<sub class="lower-index">*n*</sub> (*n* &gt; 1). Let's denote sequence *s*<sub class="lower-index">*l*</sub>, *s*<sub class="lower-index">*l* + 1</sub>, ..., *s*<sub class="lower-index">*r*</sub> as *s*[*l*..*r*] (1 ≤ *l* &lt; *r* ≤ *n*). Your task is to find the maximum number among all lucky numbers of sequences *s*[*l*..*r*].

Note that as all numbers in sequence *s* are distinct, all the given definitions make sence.
The first line contains integer *n* (1 &lt; *n* ≤ 10<sup class="upper-index">5</sup>). The second line contains *n* distinct integers *s*<sub class="lower-index">1</sub>, *s*<sub class="lower-index">2</sub>, ..., *s*<sub class="lower-index">*n*</sub> (1 ≤ *s*<sub class="lower-index">*i*</sub> ≤ 10<sup class="upper-index">9</sup>).
# t = int(input())
# for _ in range(t):
#     s = input()
#     mini = 0
#     maxi = 0
#     good = True
#     for c in s:
#         if c == '(':
#             mini += 1
#             maxi += 1
#         elif c == ')':
#             mini -= 1
#             maxi -= 1
#         else:
#             mini -= 1
#             maxi += 1
#         if maxi < 0:
#             good = False
#             break
#         while mini < 0:
#             mini += 2
#     print("YES" if good and maxi <= 2 else "NO")
    # n = int(input())
    # arr = list(map(int,input().split()))
    # st = set()
    # while n:
    #     st.add(n)
    #     n = arr[n-1]
    # print("YES" if len(st) == 3 else "NO")

n = int(input())
a = list(map(int,input().split()))
ans = -1
stk = []
for i in range(n):
    v = a[i]
    while stk and stk[-1] < v:
        w = stk.pop()
        ans = max(ans, v^w)
    # if not stk or stk[-1] < v
    if stk:
        ans = max(ans, v^stk[-1])
    stk.append(v)
# print(stk, ans)
print(ans)