#include <bits/stdc++.h>

using namespace std;

long long ans=0;

void merge(vector<int>&v, int lo, int m, int hi){
    vector<int> temp;
    int i=lo, j=m+1;
    while(i<=m && j<=hi){
        if (v[i] <= v[j]){
            temp.push_back(v[i++]);
        }  
        else{
            temp.push_back(v[j++]);
            ans+=m-i+1;
        }
    }
    for( ; i<=m; i++) temp.push_back(v[i]);
    for( ; j<=hi; j++) temp.push_back(v[j]);
    copy(temp.begin(), temp.end(), v.begin()+lo);
}


void mergeSort(vector<int>&v, int lo, int hi){
    if(lo==hi){
        return;
    }
    int m = (hi-lo)/2;
    mergeSort(v, lo, m);
    mergeSort(v, m+1, hi);
    merge(v, lo, m, hi);
}

long long paletta_sort(int N, int V[]) {
    vector<int> pari, dispari;
    for(int i=0; i<N; i++){
        if(i%2 != V[i]%2) return -1;
        if(i%2==0) dispari.push_back(V[i]);
        else pari.push_back(V[i]);
    }
    mergeSort(pari, 0, pari.size()-1);
    mergeSort(dispari, 0, dispari.size()-1);
    return ans;
}
