#include <cmath>
#include <cstdio>
#include <vector>
#include <iostream>
#include <algorithm>
#include <map>
using namespace std;

int N, A[40];
int solve(int i, int j){
    int X = 0;
    for(int k = i; k <= j; k++)
        X += A[k];
    
    map <int, int> C;
    for(int s = 0; s < (1 << (max(i - 1, 0))); s++){
        int cs = (s << 1) + 1;
        
        int Y = 0, sum = 0;
        for(int k = 0; k < i; k++){
            if((cs & (1 << k)) != 0){
                Y ^= sum;
                sum = 0;
            }
            sum += A[k];
        }
        Y ^= sum;
        
   //     cout << Y << endl;
        C[Y]++;
    }
    
    long long ret = 0;
    for(int s = 0; s < (1 << max(N - j - 2, 0)); s++){
        int cs = (s << 1) + 1;
        
        int Y = 0, sum = 0;
        for(int k = 0; k < (N - j - 1); k++){
            if((cs & (1 << k)) != 0){
                Y ^= sum;
                sum = 0;
            }
            sum += A[k + j + 1];
        }
        Y ^= sum;
        
    //    cout << Y << endl;
        ret += C[Y ^ X];
    }
    return ret;
}
int main() {
    /* Enter your code here. Read input from STDIN. Print output to STDOUT */   
    scanf("%d", &N);
    for(int i = 0; i < N; i++)
        scanf("%d", &A[i]);
    
    if(N == 1){
        printf("0\n");
        return 0;
    }
    
    long long res = solve(N / 2, N / 2 - 1);
    for(int i = 0; i < (N / 2); i++)
    for(int j = (N / 2); j < N; j++){
        if((i == 0) && (j == (N - 1)))continue;
        res += solve(i, j);
    }
    printf("%lld\n", res);
    return 0;
}