#include <bits/stdc++.h>
using namespace std;

int mergeSort2(int a, vector<vector<int>> &M, vector<int> &A, vector<int> &B){
    M[a].clear();
    int j=0;
    int ans=0;
    for(int i=0; i<A.size(); i++){
        while(B[j]<A[i]){
            M[a].push_back(B[j]);
            j++;
            ans+=i;
        }
    }
    return ans;
}

int mergeSort(vector<int> V){
    vector<vector<int>> M(V.size(), vector<int>(1));
    int n=V.size();
    int ans=0;

    while(n>0){
        for(int i=0;i<=(n-1)/2; i++){
            ans += mergeSort2(i, M, M[i*2], M[i*2+1]);
        }
        if(n%2==0){
            M[n/2]=M[n];
        }
        n=n/2;
    }

    return ans;
}

long long paletta_sort(int N, int V[]) {
    
    vector<int> P(ceil(N/2));
    vector<int> D(N/2);

    for(int i=0; i<N; i++){
        if(i%2==0){
            P.push_back(V[i]);
            if(V[i]%2==1){
                return -1;
            }
        }else{
            D.push_back(V[i]);
            if(V[i]%2==0){
                return -1;
            }
        }
    }
    int ans = 0;
    ans += mergeSort(P);
    ans += mergeSort(D);
    return ans;
}
