#include <bits/stdc++.h>
using namespace std;
int main() {
  unsigned long long n, r = 0;
  cin >> n;
  vector<unsigned long long> list(n);
  for (int i = 0; i < n; i++) cin >> list[i];
  stack<unsigned long long> st;
  for (auto item : list) {
    while (!st.empty() && st.top() < item) {
      r = (((r) > (item ^ st.top())) ? (r) : (item ^ st.top()));
      st.pop();
    }
    st.push(item);
  }
  st.empty();
  for (int i = 0; i < list.size() / 2; i++) {
    (list[i]) ^= (list[list.size() - 1 - i]);
    (list[list.size() - 1 - i]) ^= (list[i]);
    (list[i]) ^= (list[list.size() - 1 - i]);
  };
  for (int i = 0; i < n; i++) {
    while (!st.empty() && st.top() < list[i]) {
      r = (((r) > (list[i] ^ st.top())) ? (r) : (list[i] ^ st.top()));
      st.pop();
    }
    st.push(list[i]);
  }
  cout << r << endl;
}
