#include <iostream>
#include <algorithm>
#include <string>
#include <vector>
#include <cmath>
#include <utility>
#include <iomanip>
using namespace std;
typedef long long ll;
const ll MOD = 1e9+7;
ll a[100000];
int cnt[40];
int keta[40];//どの桁を減らすことができるか
int main()
{
	int n;
	ll ans=0;
	cin>>n;
	fill(cnt,cnt+40,0);
	fill(keta,keta+40,0);
	for(int i=0;i<n;i++)
	{
		cin>>a[i];
		bool f=false;
		for(ll bit=0;bit<40;bit++)
		{
			if(a[i]&(1LL<<bit))
			{
				if(!f)
				{
					f=true;
					keta[bit]++;
				}
				cnt[bit]++;
			}
		}
	}
	//上の桁から調べる
	for(int i=39;i>-1;i--)
	{
		if(!(cnt[i]&1))
			continue;
		if(keta[i]==0)
		{
			ans=-1;
			break;
		}
		ans++;
		cnt[i]--;
		for(int j=0;j<i;j++)
			cnt[j]++;
	}
	cout<<ans<<endl;
	return 0;
}