#include <bits/stdc++.h> using namespace std; int a[50]; int n; map < pair <int, int> , int > m; int solve(int xor1, int pos) { if(pos==n) { if(xor1==0) return 1; else return 0; } pair <int,int> p = make_pair(xor1,pos); if(m[p]!=0) { if(m[p]!=-1) return m[p]; else return 0; } int ans=0; long long sum=0; for(int i=pos;i<n;i++) { sum+=a[i]; ans+=solve(xor1^sum,i+1); } m[p]=ans; if(ans==0) m[p]=-1; return ans; } int main() { scanf("%d",&n); for(int i=0;i<n;i++) scanf("%d",&a[i]); printf("%d",solve(0,0)); return 0; }