Bike loves looking for the second maximum element in the sequence. The second maximum element in the sequence of distinct numbers x1, x2, ..., xk (k > 1) is such maximum element xj, that the following inequality holds: <image>.

The lucky number of the sequence of distinct positive integers x1, x2, ..., xk (k > 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 s1, s2, ..., sn (n > 1). Let's denote sequence sl, sl + 1, ..., sr as s[l..r] (1 ≤ l < 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.

Input

The first line contains integer n (1 < n ≤ 105). The second line contains n distinct integers s1, s2, ..., sn (1 ≤ si ≤ 109).

Output

Print a single integer — the maximum lucky number among all lucky numbers of sequences s[l..r].

Examples

Input

5
5 2 1 4 3


Output

7


Input

5
9 8 3 5 7


Output

15

Note

For the first sample you can choose s[4..5] = {4, 3} and its lucky number is (4 xor 3) = 7. You can also choose s[1..2].

For the second sample you must choose s[2..5] = {8, 3, 5, 7}.
#!/usr/bin/python

import sys

def getIncRight(data):
  ret = []
  for el in data:
    if len(ret) == 0 or el > ret[len(ret)-1]:
      ret.append(el)
  return ret

def getIncLeft(data):
  data.reverse()
  ret = getIncRight(data)
  data.reverse()
  ret.reverse()
  return ret

def go(data):
  if len(data) <= 1:
    return 0
  left = data[:len(data)/2]
  right = data[len(data)/2:]
  leftInc = getIncLeft(left)
  rightInc = getIncRight(right)
  p1, p2 = len(leftInc)-1, 0
  cand = leftInc[p1] ^ rightInc[p2]
  #print "Checked %d %d" % (leftInc[p1], rightInc[p2])
  while True:
    if leftInc[p1] < rightInc[p2]:
      p1 -= 1
    else:
      p2 += 1
    if p1 == -1 or p2 == len(rightInc):
      break
    cand = max(cand, leftInc[p1] ^ rightInc[p2])
    #print "Checked %d %d" % (leftInc[p1], rightInc[p2])
  cand = max(cand, go(left))
  cand = max(cand, go(right))
  #print left, leftInc, right, rightInc, data, cand
  return cand

f = sys.stdin
line = f.readline().rstrip()
n = int(line)
_tok = f.readline().rstrip().split(" ")
tok = [int(el) for el in _tok]
print go(tok)
