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