fwt
#include<bits/stdc++.h>
using namespace std;
const int N=1<<19;
const int mod=1000000007;
const int inv2=(mod+1)/2;
void fwt(int *a,int n)
{
for(int i=1;i<n;i<<=1)
for(int p=i<<1,j=0;j<n;j+=p)
for(int k=j;k<j+i;k++)
{
int x=a[k],y=a[i+k];
a[k]=(x+y)%mod;
a[i+k]=(x-y+mod)%mod;
}
}
void ifwt(int *a,int n)
{
for(int i=1;i<n;i<<=1)
for(int p=i<<1,j=0;j<n;j+=p)
for(int k=j;k<j+i;k++)
{
int x=a[k],y=a[i+k];
a[k]=1LL*(x+y)*inv2%mod;
a[i+k]=1LL*(x-y+mod)*inv2%mod;
}
}
int a[22][N],n;
int main()
{
scanf("%d",&n);
int s=0;
for(int i=1;i<=n;++i)
{
int x;
scanf("%d",&x);
a[0][x]=1;
s^=x;
}
a[0][0]=1;
fwt(a[0],N);
for(int i=1;i<22;++i)
for(int j=0;j<N;++j)
a[i][j]=1LL*a[i-1][j]*a[0][j]%mod;
if(s==0)printf("%d
",n);
else
{
for(int i=0;i<22;++i)
{
ifwt(a[i],N);
if(a[i][s])
{
printf("%d
",n-i-1);
break;
}
}
}
return 0;
}
/********************
********************/