#include <iostream>
#include <vector>
using namespace std;
const int N = 500005;
//int digits[N][65];
int num_of_digits[66];
long long numbers[N];
//vector<int> dig;
int main()
{
    ios :: sync_with_stdio(false);
    int n;
    cin >> n;
    int cnt = 0;
    int cnt0 = 0;
    int num0 = 0;
    for(int i=0; i<n; i++)
    {
        long long k;
        cin >> k;
        numbers[i]=k;
     //   cnt += 1-k%2;
        if(k==0)
            cnt0++;

        for(int j=0; k>0; j++, k/=2)
        {
            num_of_digits[j]+=k%2;
        }

    }
    cnt = n-num_of_digits[0];
    int icnt=0;
    for(int i=1; i<=65; i++)
    {
        num0 += num_of_digits[i]%2;
        if(cnt > n-num_of_digits[i])
        {
            cnt = n-num_of_digits[i];
            icnt = i;
        }
    }
    num0+= n%2;


    if(n<=-16)
    {
        for(int i=0; i<n; i++)
            if(numbers[i]%2==0)
                numbers[i]++;
        int x=0;
        for(int i=0; i<n; i++)
        {
            x^=numbers[i];
        }
        if(x==0 && cnt0 == cnt)
        {
            numbers[0]+=2;
            cnt+=2;
        }
        x=0;
        for(int i=0; i<n; i++)
        {
            x^=numbers[i];
        }
        if(x==0 && cnt0 == cnt)
        {
            cout << numbers[-1];
        }
        cout << cnt;
        return 0;
    }

//    if(cnt==0)
//        while(true);
//    if(cnt==0 && num0 == 0)
//        cnt+=2;

    if(cnt0==cnt && icnt==0 && num0==0)
        cnt+=2;
    cout << cnt;
    return 0;
}