#include <bits/stdc++.h>

using namespace std;
#define MAXN 500005
#define MAXBIT 40
typedef long long ll;
ll a[MAXN];
int cnt[MAXBIT];
int cntt[MAXBIT];

int main()
{
    ios_base::sync_with_stdio(false);
    int n;
    cin >> n;
    for(int i = 0; i < n; i++)
    {
        cin >> a[i];
        for(int j = 0; j < MAXBIT; j++)
        {
            if(a[i]&(1LL<<j))cnt[j]^=1;
        }
    }
    ll ans = 1e18;
    for(int j = 0; j < MAXBIT; j++)
    {
        for(int k = 0; k < MAXBIT; k++)cntt[k]=cnt[k];
        ll s=0LL;
        bool moze = false;
        for(int i = 0; i < n; i++)
        {
            if(a[i]&(1LL<<j))continue;
            ll add=(1LL<<j);
            ll levo=0LL;
            ll desno=0LL;
            for(int k = 0; k < j; k++)
            {
                if(a[i]&(1LL<<k))levo+=(1LL<<k);
            }
            add=min(add,abs((1LL<<j)-levo));
            for(int k = j+1; k < MAXBIT; k++)
            {
                if(a[i]&(1LL<<k))desno+=(1LL<<k);
            }
            add=min(add,abs((1LL<<j)-desno));
            if(levo!=0&&desno!=0 && abs((1LL<<j)-levo)==abs((1LL<<j)-desno))moze=true;
            s+=add;
            cntt[j]^=1;
            for(int k = 0; k < j; k++)
            {
                if(a[i]&(1LL<<k))cntt[k]^=1;
            }
        }
        for(int k = 0; k < MAXBIT; k++)
        {
            if(cntt[k]==1){moze=true;break;}
        }
        if(!moze)ans=min(ans,s+1);
        else ans=min(ans,s);
    }
    cout << ans;
    return 0;
}