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 checkKey(dict, key): 
# 	if key in dict:
# 		return True
# 	return False
# def helper(s):
# 	l=len(s)
# 	if (l==1):
# 		l=[]
# 		l.append(s)
# 		return l
# 	ch=s[0]
# 	recresult=helper(s[1:])
# 	myresult=[]
# 	myresult.append(ch)
# 	for st in recresult:
# 		myresult.append(st)
# 		ts=ch+st
# 		myresult.append(ts)

# 	return myresult


# mod=1000000000+7
# def helper(s,n,open,close,i):
# 	if(i==2*n):
# 		for i in s:
# 			print(i,end='')
# 		print()
# 		return
# 	if(open<n):
# 		s[i]='('
# 		helper(s,n,open+1,close,i+1)
# 	if(close<open):
# 		s[i]=')'
# 		helper(s,n,open,close+1,i+1)

# def helper(arr,i,n):
# 	if(i==n-1):
# 		recresult=[arr[i]]
# 		return recresult
# 	digit=arr[i]
# 	recresult=helper(arr,i+1,n)
# 	myresult=[]
# 	for i in recresult:
# 		myresult.append(i)
# 		myresult.append(i+digit);
# 	myresult.append(digit)
# 	return myresult
# import copy
# n=int(input())
# arr=list(map(int,input().split()))
# ans=[]
# def helper(arr,i,n):
# 	if(i==n-1):
# 		# for a in arr:
# 		# 	print(a,end=" ")
# 		# print()
# 		l=copy.deepcopy(arr)
# 		ans.append(l)
# 		return
# 	for j in range(i,n):
# 		if(i!=j):
# 			if(arr[i]==arr[j]):
# 				continue
# 			else:
# 				arr[i],arr[j]=arr[j],arr[i]
# 				helper(arr,i+1,n)
# 				arr[j],arr[i]=arr[i],arr[j]
# 		else:
# 			arr[i],arr[j]=arr[j],arr[i]
# 			helper(arr,i+1,n)
# def helper(sol,n,m):
# 	for i in range(n+1):
# 		for j in range(m+1):
# 			print(sol[i][j],end=" ")
# 		print()
# def rat_in_a_maze(maze,sol,i,j,n,m):
# 	if(i==n and j==m):
# 		sol[i][j]=1
# 		helper(sol,n,m)
# 		exit()
# 	if(i>n or j>m):
# 		return False
# 	if(maze[i][j]=='X'):
# 		return False
# 	maze[i][j]='X'
# 	sol[i][j]=1
# 	if(rat_in_a_maze(maze,sol,i,j+1,n,m)):
# 		return True	
# 	elif(rat_in_a_maze(maze,sol,i+1,j,n,m)):
# 		return True
# 	sol[i][j]=0
# 	return False
def helper(arr,n,i):
	start=n-1
	end=-1
	flag=0
	index=n-1
	for j in range(i+1,n):
		if(arr[j]<arr[j-1]):
			return -1
	if(arr[n-1]>arr[0]):
		return -1
	return n-i

	


n=int(input())
arr=list(map(int,input().split()))
flag=0
index=-1
for i in range(1,n):
	if(arr[i]<arr[i-1]):
		index=i
		flag=1
		break
if(flag==0):
	print(0)
else:
	print(helper(arr,n,index))

