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

int sortable(const vector<pair<int, int>>& movements) {
    for (const pair<int, int>& p : movements) {
        if ((p.first - p.second) % 2 != 0) {
            return -1;
        }
    }
    return 1;
}

long long paletta_sort(int N, int V[]) {

    vector<pair<int, int>> movements(N);
    for (int i{ }; i < N; ++i) movements[i] = { V[i], i };
    sort(movements.begin(), movements.end());

    return sortable(movements);

    // broken
    if (N > 1e5) return sortable(movements);
    long long moves{ };
    for (int i{ }; i < N; ++i) {
        if ((movements[i].first - movements[i].second) % 2 != 0 || (moves > 100 && N > 5000)) return sortable(movements);

        while (movements[i].second != i) {
            cerr << " " << movements[i].second;
            moves++;
            int other = V[i - 2];
            movements[other].second -= 2;
            movements[i].second += 2;
        }
    }

    return moves;
}
