#include <bits/stdc++.h>
using namespace std;
int main() {
  int n;
  cin >> n;
  vector<long long int> v(n, 0);
  for (int i = 0; i < n; i++) cin >> v[i];
  stack<int> s;
  vector<int> ls(n, 0), rs(n, 0);
  for (int i = 0; i < n; i++) {
    if (s.empty())
      s.push(i);
    else {
      while (!s.empty()) {
        if (v[s.top()] < v[i]) {
          rs[s.top()] = i;
          s.pop();
        } else {
          break;
        }
      }
      s.push(i);
    }
  }
  while (!s.empty()) {
    rs[s.top()] = -1;
    s.pop();
  }
  for (int i = n - 1; i >= 0; i--) {
    if (s.empty())
      s.push(i);
    else {
      while (!s.empty()) {
        if (v[s.top()] < v[i]) {
          ls[s.top()] = i;
          s.pop();
        } else {
          break;
        }
      }
      s.push(i);
    }
  }
  while (!s.empty()) {
    ls[s.top()] = -1;
    s.pop();
  }
  long long int ans = 0;
  for (int i = 0; i < n; i++) {
    if (ls[i] != -1) {
      ans = max(ans, v[i] ^ v[ls[i]]);
    }
    if (rs[i] != -1) {
      ans = max(ans, v[i] ^ v[rs[i]]);
    }
  }
  cout << ans << endl;
}
