#
# 代码中的类名、方法名、参数名已经指定,请勿修改,直接返回方法规定的值即可
#
# 
# @param n int整型 表示是几维空间
# @param a int整型一维数组 表示n维空间的坐标
# @return int整型
#
class Solution:
    def solve(self , n , a ):
        # write code here
        if n == 1:
            return 0
        
        sum = 0
        # stack维护次大值左侧最大值
        stack = []
        # i为次大值
        for i in range(n):
            while stack and stack[-1] < a[i]:
                # 栈顶把比当前值小的弹出,留下比当前值大的
                stack.pop()
            if stack:
                # 栈顶为左侧比当前值大的
                sum = max(sum, a[i]^stack[-1])
            stack.append(a[i])
            r = i + 1
            while r<n and a[r] < a[i]:
                r += 1
            if r<n:
                sum = max(sum, a[i]^a[r])
        return sum