#include <bits/stdc++.h>

using namespace std;

typedef long long ll;

#define clr(a) (a.clear())
#define sz(x) (int)x.size()
#define mem(a,b) memset(a, b, sizeof(a))
#define Unique(store) store.resize(unique(store.begin(),store.end())-store.begin())
#define pb push_back

#define X first
#define Y second


typedef pair <int , int> pii;
typedef pair <ll , ll> pll;
const int inf = 1E9;
const ll mod = 1LL;

#define SZ  100010

map <pii, ll> mp;

ll solve (vector <int> &a, int pos, int Xor) {
//    cout << ">> " << pos << ' ' << Xor << endl;
    if (pos == -1) {
        return (Xor == 0);
    }
    if (mp.find({pos, Xor}) != mp.end()) {
        return mp[{pos, Xor}];
    } else {
        mp[{pos, Xor}] = 0;
        int sum = 0;
        for (int i = pos; i >= 0; i--) {
            sum += a[i];
            mp[{pos, Xor}] += solve(a, i - 1, Xor ^ sum);
        }
        return mp[{pos, Xor}];
    }
}

int main() {
    #if defined JESI
//        freopen("1.txt", "r", stdin);
//        freopen("2.txt", "w", stdout);
    #endif

    int n;
    cin >> n;

    vector <int> a(n);

    for (int &x: a) {
        cin >> x;
    }

    cout << solve(a, n - 1, 0) << endl;


    return 0;
}