#include <algorithm>
#include <iostream>
#include <vector>

// Jarod42
// solution of http://c...content-available-to-author-only...s.com/contest/454/problem/B

int get_unicorn_shift(const std::vector<int>& v)
{
    auto mid = std::is_sorted_until(v.begin(), v.end());
    if (mid == v.end()) {
        return 0;
    }
    auto end = std::is_sorted_until(mid, v.end());
    if (end != v.end() || v.front() < v.back()) {
        return -1;
    }
    return end - mid;
}

int main()
{
    std::cout << get_unicorn_shift({2, 1}) << std::endl;    // 1
    std::cout << get_unicorn_shift({1, 3, 2}) << std::endl; // -1
    std::cout << get_unicorn_shift({3, 2, 1}) << std::endl; // -1
    std::cout << get_unicorn_shift({1, 2}) << std::endl;    // 0
    std::cout << get_unicorn_shift({11, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10}) << std::endl; // 10
    return 0;
}
