#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<int, int> ii;
const int INF = 1e9;
const ll LINF = 1e18;
const int N = 2e5 + 5;
const int MX = 6e6 + 5;
template<typename T>
void maximize(T& a, const T& b) {
if (a < b) a = b;
}
struct Node {
int nxt[2];
Node() {
memset(nxt, -1, sizeof nxt);
}
};
// Xem mỗi số như một xâu 30 bit, theo thứ tự từ bit 29 (lớn nhất) về bit 0 (nhỏ nhất)
int sz;
Node trie[MX];
void addNumber(int x) {
int v = 0;
for (int i = 29; i >= 0; i--) {
int bit = (x >> i) & 1;
if (trie[v].nxt[bit] == -1) {
trie[v].nxt[bit] = ++sz;
}
v = trie[v].nxt[bit];
}
}
// Tìm giá trị y ^ x lớn nhất trong các số y có trong cây trie hiện tại
int getMaxXor(int x) {
// Tại mỗi bước, ưu tiên đi vào nhánh cho ra xor bằng 1
int v = 0, ans = 0;
for (int i = 29; i >= 0; i--) {
int bit = (x >> i) & 1;
int nxt_v0 = trie[v].nxt[bit], nxt_v1 = trie[v].nxt[bit ^ 1];
if (nxt_v1 != -1) {
ans |= (1 << i);
v = nxt_v1;
}
else {
v = nxt_v0;
}
}
return ans;
}
int n;
int a[N];
int pref_xor[N];
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
cin >> n;
for (int i = 1; i <= n; i++) {
cin >> a[i];
pref_xor[i] = pref_xor[i - 1] ^ a[i];
}
int ans = 0;
for (int i = 0; i <= n; i++) {
if (i > 0) maximize(ans, getMaxXor(pref_xor[i]));
addNumber(pref_xor[i]);
}
cout << ans << '\n';
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+IAoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsgIAoKdHlwZWRlZiBsb25nIGxvbmcgbGw7ICAKdHlwZWRlZiBwYWlyPGludCwgaW50PiBpaTsgIAoKY29uc3QgaW50IElORiA9IDFlOTsgIApjb25zdCBsbCBMSU5GID0gMWUxODsgIAoKY29uc3QgaW50IE4gPSAyZTUgKyA1OyAKY29uc3QgaW50IE1YID0gNmU2ICsgNTsgCgp0ZW1wbGF0ZTx0eXBlbmFtZSBUPgp2b2lkIG1heGltaXplKFQmIGEsIGNvbnN0IFQmIGIpIHsKCWlmIChhIDwgYikgYSA9IGI7ICAKfQoKc3RydWN0IE5vZGUgewoJaW50IG54dFsyXTsgCgoJTm9kZSgpIHsKCQltZW1zZXQobnh0LCAtMSwgc2l6ZW9mIG54dCk7IAoJfQp9OyAKCi8vIFhlbSBt4buXaSBz4buRIG5oxrAgbeG7mXQgeMOidSAzMCBiaXQsIHRoZW8gdGjhu6kgdOG7sSB04burIGJpdCAyOSAobOG7m24gbmjhuqV0KSB24buBIGJpdCAwIChuaOG7jyBuaOG6pXQpIAppbnQgc3o7IApOb2RlIHRyaWVbTVhdOyAKCnZvaWQgYWRkTnVtYmVyKGludCB4KSB7CglpbnQgdiA9IDA7IAoJZm9yIChpbnQgaSA9IDI5OyBpID49IDA7IGktLSkgewoJCWludCBiaXQgPSAoeCA+PiBpKSAmIDE7IAoJCWlmICh0cmllW3ZdLm54dFtiaXRdID09IC0xKSB7CgkJCXRyaWVbdl0ubnh0W2JpdF0gPSArK3N6OyAKCQl9CgkJdiA9IHRyaWVbdl0ubnh0W2JpdF07IAoJfQp9CgovLyBUw6xtIGdpw6EgdHLhu4sgeSBeIHggbOG7m24gbmjhuqV0IHRyb25nIGPDoWMgc+G7kSB5IGPDsyB0cm9uZyBjw6J5IHRyaWUgaGnhu4duIHThuqFpCmludCBnZXRNYXhYb3IoaW50IHgpIHsKCS8vIFThuqFpIG3hu5dpIGLGsOG7m2MsIMawdSB0acOqbiDEkWkgdsOgbyBuaMOhbmggY2hvIHJhIHhvciBi4bqxbmcgMQoJaW50IHYgPSAwLCBhbnMgPSAwOyAKCWZvciAoaW50IGkgPSAyOTsgaSA+PSAwOyBpLS0pIHsKCQlpbnQgYml0ID0gKHggPj4gaSkgJiAxOyAKCQlpbnQgbnh0X3YwID0gdHJpZVt2XS5ueHRbYml0XSwgbnh0X3YxID0gdHJpZVt2XS5ueHRbYml0IF4gMV07IAoJCWlmIChueHRfdjEgIT0gLTEpIHsKCQkJYW5zIHw9ICgxIDw8IGkpOyAKCQkJdiA9IG54dF92MTsKCQl9CgkJZWxzZSB7CgkJCXYgPSBueHRfdjA7IAoJCX0KCX0KCXJldHVybiBhbnM7IAp9CgppbnQgbjsgCmludCBhW05dOyAKaW50IHByZWZfeG9yW05dOyAKCmludCBtYWluKCkgewoJaW9zOjpzeW5jX3dpdGhfc3RkaW8oZmFsc2UpOyAKCWNpbi50aWUobnVsbHB0cik7IAkKCWNpbiA+PiBuOyAKCWZvciAoaW50IGkgPSAxOyBpIDw9IG47IGkrKykgewoJCWNpbiA+PiBhW2ldOyAgCgkJcHJlZl94b3JbaV0gPSBwcmVmX3hvcltpIC0gMV0gXiBhW2ldOyAgCgl9IAoKCWludCBhbnMgPSAwOyAgCglmb3IgKGludCBpID0gMDsgaSA8PSBuOyBpKyspIHsKCQlpZiAoaSA+IDApIG1heGltaXplKGFucywgZ2V0TWF4WG9yKHByZWZfeG9yW2ldKSk7IAoJCWFkZE51bWJlcihwcmVmX3hvcltpXSk7IAoJfQoKCWNvdXQgPDwgYW5zIDw8ICdcbic7IAp9