#include #include #include #include #include #include #include #include #include #include #define mkp make_pair #define mkt make_tuple #define rep(i,n) for(int i = 0; i < (n); ++i) #define all(v) v.begin(),v.end() using namespace std; typedef long long ll; const ll MOD=1e9+7; template void chmin(T &a,const T &b){if(a>b) a=b;} template void chmax(T &a,const T &b){if(a>N; vector A(N); rep(i,N) cin>>A[i]; vector B(N); B[0]=A[0]; rep(i,N-1) B[i+1]=B[i]^A[i+1]; vector v=B; sort(all(v)); v.erase(unique(all(v)),v.end()); int V=v.size(); map mp; rep(i,V) mp[v[i]]=i; vector> idxs(V); rep(i,N) idxs[mp[B[i]]].push_back(i); vector dp(N+1,0); dp[0]=1; vector sum(N+2,0); sum[1]=1; map last; rep(i,N) last[B[i]]=-1; for(int i=0;i