#include<bits/stdc++.h>

#define eps 1e-8
#define xx first
#define yy second
#define LL long long
#define inf 100000
#define pb push_back
#define vsort(v) sort(v.begin(),v.end())
#define pi acos(-1)
#define clr(a,b) memset(a,b,sizeof a)
#define bclr(a) memset(a,false,sizeof a)
#define pii pair<int,int>
#define pll pair<LL,LL>
#define MOD 1000000007
#define MP make_pair
#define MX 300000

using namespace std;
LL ar[44];
LL pre[44];
LL suf[44];
map<pair<int,LL>,int>dp;
int n;

int solve(int indx,int xr){
    if(indx>n) return (xr==0);
    if(dp.find(MP(indx,xr))!=dp.end()) return dp[MP(indx,xr)];
    LL v=0ll;
    for(int i=indx;i<=n;i++){
        v+=ar[i];
        dp[MP(indx,xr)]+=solve(i+1,xr^v);
    }
    return dp[MP(indx,xr)];
}
int main(){
    cin>>n;
    for(int i=1;i<=n;i++) cin>>ar[i];
    int res=solve(1,0);
    cout<<res<<endl;
    return 0;
}