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 zip_sorted(a,b):

	# sorted  by a
	a,b = zip(*sorted(zip(a,b)))
	# sorted by b
	sorted(zip(a, b), key=lambda x: x[1])

	return a,b

n = int(input())
# n = 99998
a = [int(n1) for n1 in input().split()]
# a = [99997]+list(range(1,99997))
count2=0
for k1 in range(len(a)-1):
	if a[k1]<=a[k1+1]:
		pass
	else:
		count2 = count2 + 1
		index1 = k1
if count2==0:
	print(0)
if count2==1:
	if sorted(a[:index1+1])==a[:index1+1]:
		if sorted(a[index1+1:])==a[index1+1:]:
			if ( a[0]>=a[index1+1] and a[0]>=a[-1]  and a[index1]>=a[index1+1]  and a[index1]>=a[index1+1] ):
				print(len(a[index1+1:]))
			else:
				print(-1)
		else:
			print(-1)
	else:
		print(-1)

if count2>1:
	print(-1)

# print(range(99998))

'''
for i in range(n):
for j in range(n):
for k1 in range(len(a)):
for k2 in range(len(a)):
for k3 in range(len(a)):

'''