线性基性质:
1.原序列里面的任意一个数都可以由线性基里面的一些数异或得到。
2.线性基里面的任意一些数异或起来都不能得到0 0
3.线性基里面的数的个数唯一,并且在保持性质一的前提下,数的个数是最少的
//#include<bits/stdc++.h>
#include<iostream>
#include<cstdio>
#include<algorithm>
#include<cmath>
#include<cstring>
#include<queue>
#include<set>
#include<map>
#include<vector>
#define mem(a,b) memset(a,b,sizeof(a))
#define ll long long
#define sl(x) scanf("%lld",&(x))
#define rep(i,a,b) for(int i=a;i<=b;i++)
using namespace std;
int p[105];
void Insert(int now)
{
per(i,62,0)
{
if((now&((ll)1<<i)))
{
if(!p[i])
{
p[i]=now;
break;
}
now^=p[i];
}
}
}
#undef int
int main()
{
#define int long long
int n;
sl(n);
rep(i,1,n)
{
int now;
sl(now);
Insert(now);
}
int ans=0;
per(i,62,0)
if((ans^p[i])>ans) ans^=p[i];
cout<<ans<<"\n";
return 0;
}