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
//


var line = readline();

var ray = readline().split(' ');
var n = parseInt(line);
var bRay = [];


for(var i = 0 ; i < n ; i++) {
	bRay.push(parseInt(ray[i]));
}

print(foo(n,bRay));

//console.log(foo(2,[1,2]));

//checker(3,[1,3,2],0);
function foo(n,ray) {
	var count = 0;
	//console.log(checker(n,bRay,1));
	
	for(var i = 0 ; i < n-1;i++) {
		if (ray[i] > ray[i+1]) {
			
			for(var j = 1 ; j < n ; j++) {
				//.log((j+i)%n,i);
				if ( ray[(j+i) % n]  > ray[(j+i+1) %n]) {
					return -1;
				}
				
			}
			return n-(i+1);
			
			
			
		}
		
		
	}
	
	return 0;
}

/*
function checker(n,ray,p) {
//	var s = "";
//	var d = "";
	for(var i = 0 ; i < n-1 ; i++) {
		
		
		if ( ray[(i+p) %n] > ray[(i+1+p) %n]) {
			return false;
		}
		
	}
	
	
	return true;
}*/