#include using namespace std; #define FOR(i,a,b) for(int i=(a),i##formax=(b);i< i##formax;i++) #define FORR(i,a,b) for(int i=(a),i##formin=(b);i>=i##formin;i--) #define pb push_back #define eb emplace_back #define mp make_pair #define fi first #define se second #define pcnt __builtin_popcount #define sz(x) (int)(x).size() #define maxs(x,y) x=max((x),(y)) #define mins(x,y) x=min((x),(y)) #define show(x) cout<<#x<<" = "<<(x)<using V=vector; templateusing VV=V>; templateusing P=pair; templateostream& operator<<(ostream&o,P&p){return o<<"("<ostream& operator<<(ostream&o,V&v){for(T&t:v)o<void uniq(V&v){sort(all(v));v.erase(unique(all(v)), v.end());} templatevoid Fill(A(&a)[N],const T&v){fill((T*)a,(T*)(a+N),v);} const int MOD = 1e9+7; //998244353; lll gcd(lll a,lll b,lll&x,lll&y){if(!b){x=1;y=0;return a;}lll d=gcd(b,a%b,y,x);y-=a/b*x;return d;} ll modInv(ll a,ll m=MOD){lll x,y;gcd(a,m,x,y);return(x%m+m)%m;} ll modPow(lll a,lll n,ll m=MOD){lll p=1;for(;n;n>>=1,a=a*a%m)if(n&1)p=p*a%m;return p;} //VFac,Rac;void setF(int n,int m=MOD){Fac=Rac=V(++n);Fac[0]=1;FOR(i,1,n)Fac[i]=Fac[i-1]*i%m;Rac[n-1]=modInv(Fac[n-1],m);FORR(i,n-1,1)Rac[i-1]=Rac[i]*i%m;} //ll comb(int a,int b,int m=MOD){return a v; main(){ cin.tie(0); ios::sync_with_stdio(false); scanf("%d", &n); FOR(_, 0, n){ ll a; scanf("%lld", &a); for(ll l:v) mins(a, a^l); if(a) v.pb(a), ans++; } printf("%lld\n", bit(ans)); }