#include <bits/stdc++.h>
using namespace std;
const int N = 100005;
int son[N * 40][2];
long long a[N], tot;
long long s = 0ll;
long long xorm;
void func1(long long x) {
  int i;
  int p = 0;
  for (i = 40; i >= 0; --i) {
    int num = (x >> i) & 1;
    if (!son[p][num]) son[p][num] = ++tot;
    p = son[p][num];
  }
}
long long func2(long long x) {
  int i;
  int p = 0;
  long long tmp = 0ll;
  for (i = 40; i >= 0; --i) {
    int num = (x >> i) & 1;
    if (son[p][!num]) {
      p = son[p][!num];
      tmp += 1LL << i;
    } else
      p = son[p][num];
  }
  return tmp;
}
int main() {
  int i, n;
  cin >> n;
  for (i = 0; i < n; i++) {
    cin >> a[i];
    s = s ^ a[i];
    func1(s);
  }
  s = 0ll;
  xorm = func2(0);
  for (i = n - 1; i >= 0; i--) {
    s = s ^ a[i];
    xorm = max(xorm, func2(s));
  }
  cout << xorm << endl;
  return 0;
}
