#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
#define all(x) (x).begin(),(x).end()
const int mod=1000000007,MAX=100001,INF=1<<30;

int main(){
    int N,total=0;cin>>N;
    vector<int> A(N),B(31,0);
    for(int i=0;i<N;i++){
        cin>>A[i];
        for(int j=0;j<31;j++){
            if(A[i]&(1<<j)){ B[j]++;
            break;
            }
        }
        total=total^A[i];
    }

    int ans=0;

    for(int j=30;j>=0;j--){
        if(total&(1<<j)){
            if(B[j]){
                ans++;
                total=(total^(1<<j))^((1<<j)-1);
            }else ans-=1000;
        }
    }

    if(ans>=0) cout<<ans<<endl;
    else cout<<-1<<endl;
}