#include<cstdio>
#include<cstring>
#include<cmath>
#include<cstdlib>
#include<iostream>
#include<algorithm>
#include<string>
#include<vector>
#include<set>
#include<queue>
#include<map>
#include<bitset>
#include <unordered_map>
using namespace std;
#define PII pair<int,int>
#define X first
#define Y second
#define PB push_back
#define CLR(a) memset(a, 0, sizeof(a))
#define FOR(i,a,b) for (int i=(a);i<(b);i++)
#define FOE(i,a,b) for (int i=(a);i<=(b);i++)
#define FIT(i,a) for (__typeof__((a).begin()) i = (a).begin(); i != (a).end(); i++)
#define TRA(i,a,b) for (int i = (a); i != -1; i = (b)[i])
#define INF (1 << 30)
#define EPS (1e-9)
#define REP(i,n) FOR(i,0,n)
#define LL long long
#define MOD 1000000007
#define N 100
unordered_map<LL, LL> mp[N];

LL ans;
LL a[N];
int n, m;

void f(int l, int x, LL Xor){
        if (l == -1){
                if (x > m) return;
                int len = m - x;
//              printf("|||%d %d\n", len, Xor);
                ans += mp[len][Xor];
                LL sum = 0;
                for (int i = x; i < n; i++){
                        sum += a[i];
                        f(l, i + 1, Xor ^ sum);
                }
        }
        else{
                if (x == n){
                        mp[l][Xor]++;
                //      printf("%d %d\n", l, Xor);
                        return;
                }
                LL sum = 0;
                for (int i = x; i < n; i++){
                        sum += a[i];
                        f(l, i + 1, Xor ^ sum);
                }
                return;
        }
}

int main(){
        scanf("%d", &n);
        FOR(i,0,n) scanf("%lld", a + i);
        m = n / 2;
        FOE(l,0,m){
                LL sum = 0;
                for (int i = 0; i < l; i++) sum += a[m - 1 - i];
                for (int i = m; i < n; i++){
                        sum += a[i];
                        f(l, i + 1, sum);
                }
        }
        LL sum = 0;
        for (int i = 0; i < m; i++){
                sum += a[i];
                f(-1, i + 1, sum);
        }
        printf("%lld\n", ans + mp[m][0]);
        return 0;
}