Code:
#include <bits/stdc++.h>
using namespace std;
#define maxn 60
#define ll long long
ll n,a[maxn],P[maxn];
inline void init_() {
freopen("a.txt","r",stdin);
}
inline ll read_() {
ll x=0,f=1;
char c=getchar();
while(c<'0'||c>'9') {
if(c=='-') f=-1;
c=getchar();
}
while(c>='0'&&c<='9') {
x=x*10+c-'0';
c=getchar();
}
return x*f;
}
inline void readda_() {
n=read_();
for(int i=1;i<=n;i++) {
a[i]=read_();
}
}
inline void work_() {
for(int i=1;i<=n;i++) {
for(int j=52;j>=0;j--) {
if(!(a[i]>>j)) continue;
if(!P[j]) {
P[j]=a[i];
break;
}
else a[i]^=P[j];
}
}
ll ans=0;
for(int i=52;i>=0;i--) {
if((ans^P[i])>ans) ans=ans^P[i];
}
printf("%lld",ans);
}
int main() {
init_();
readda_();
work_();
return 0;
}