#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; }