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
#coding: utf-8
def encontrarinicio(el, lista):
	qtd = lista.count(el)
	n = len(lista)
	
	if qtd == 1:
		return lista.index(el)
	elif qtd == n:
		return 0
	else:
		pos = 0
		while pos < n:
			if el == lista[pos+1]:
				pos += 1
				#print 'foi pra posicao %d' %pos
			else: break
		
		while pos+1 != n:
			pos += 1
			if lista[pos] == el:
				break
			
		else:
			return 0
		
		return pos
	

n = int(raw_input())
lista = map(int, raw_input().split())
testar = False
if n > 1:
	testar = True
else:
	print 0

ordenada = list(lista)
ordenada.sort()

### checar se eh valido
pos = 0
start = encontrarinicio(ordenada[0], lista)

while pos < n and testar:
	
	if lista[(start+pos)%n] == ordenada[pos]:
		pos += 1
	else:
		print -1
		break
### checa quantidade de alterações
else:
	print (n-start)%n
	


