One day, Twilight Sparkle is interested in how to sort a sequence of integers a1, a2, ..., an in non-decreasing order. Being a young unicorn, the only operation she can perform is a unit shift. That is, she can move the last element of the sequence to its beginning:

a1, a2, ..., an → an, a1, a2, ..., an - 1.

Help Twilight Sparkle to calculate: what is the minimum number of operations that she needs to sort the sequence?

Input

The first line contains an integer n (2 ≤ n ≤ 105). The second line contains n integer numbers a1, a2, ..., an (1 ≤ ai ≤ 105).

Output

If it's impossible to sort the sequence output -1. Otherwise output the minimum number of operations Twilight Sparkle needs to sort it.

Examples

Input

2
2 1


Output

1


Input

3
1 3 2


Output

-1


Input

2
1 2


Output

0
def test(a, k):
    global b, n
    for i in range(n):
        if a[i] != b[i]:
            return -1;
    return k;
def find_number_of_max(a):
    number_max = []
    max_element = max(a)
    for i in range(n-1,-1, -1):
        if a[i] == max_element:
            number_max.append(i)
    return number_max;
def shift(a, k):
    r = a[-1:len(a) - k - 1:-1]
    e = []
    q = []
    for i in range(len(r)-1, -1, -1):
        e.append(r[i])
    q = e + a
    del (q[-1:len(q) - k - 1:-1])    
    return q;    
    
n = input()
a = map(int,raw_input().split())
b = []
for i in (a):
    b.append(i)
b.sort()
ans = -1
n_max = find_number_of_max(a)
for k in n_max:
    hj = test(shift(a, n - k - 1), n - k - 1)  
    if hj != -1:
        ans = hj
        break 
print ans