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
'''input
7
2 3 4 1 2 3 4
'''
n = int(input())
a = list(map(int, input().split()))
# m1, m2 = n - 1 - a[::-1].index(min(a)), a.index(max(a))
m1, m2 = a.index(min(a)), a.index(max(a))
if a == sorted(a):
	print(0)
elif m1 < m2:
	if a == sorted(a):
		print(0)
	elif n - 1 - a[::-1].index(min(a)) <= m2:
		print(-1)
		quit()
	else:
		while a[m2+1] == a[m2]:
			m2 += 1
		m1 = m2 + 1
		if m1 == m2 + 1:
			if a[m1+1:] == sorted(a[m1+1:]):
				if a[:m2] == sorted(a[:m2]):
					if a[-1] <= a[0]:
						print(n - m2 - 1)
						quit()
	print(-1)
else:
	while a[m2+1] == a[m2]:
		m2 += 1
		m1 = m2 + 1
	if m1 == m2 + 1:
		if a[m1+1:] == sorted(a[m1+1:]):
			if a[:m2] == sorted(a[:m2]):
				if a[-1] <= a[0]:
					print(n - m2 - 1)
					quit()
	print(-1)

















