#include<bits/stdc++.h>
#define int long long
using namespace std;
template<class T> inline bool chmax(T& a, T b){ if(a<b){ a=b; return 1; } return 0; }
template<class T> inline bool chmin(T& a, T b){ if(a>b){ a=b; return 1; } return 0; }


signed main()
{
    int N; cin>>N;
    vector<int> b(N);
    int X=0;
    for(int i=0;i<N;i++){
        int a; cin>>a;
        b[i]=a&-a;
        X^=a;
    }
    sort(b.begin(),b.end(),greater<int>());

    int ans=0;
    for(int i=0;i<N;i++){
        //cout<<(bitset<10>)X<<' '<<(bitset<10>)b[i]<<endl;
        if(X&b[i]){
            ans++;
            X^=b[i];
            X^=(b[i]-1);
        }
    }
    if(X==0){
        cout<<ans<<endl;
    }else{
        cout<<-1<<endl;
    }
}
