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
/* package codechef; // don't place package name! */

import java.util.*;
import java.lang.*;
import java.io.*;

/* Name of the class has to be "Main" only if the class is public. */
public class Main
{
	public static void main (String[] args) throws java.lang.Exception
	{
		BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
	   try{
	       int n=Integer.parseInt(br.readLine());
	   String s[]=br.readLine().trim().split(" ");
	   int a[]=new int[n];
	   for(int i=0;i<n;i++){
	       a[i]=Integer.parseInt(s[i]);
	   }
	   int v=0,p=0;
	   for(int i=0;i<n-1;i++){
	       if(a[i]>a[i+1]){
	           p=i;
	           v++;
	       }
	   }
	   if(a[n-1]>a[0]){
	       p=n-1;
	       v++;
	   }
	       if(v==0){
	           System.out.println(0);
	       }
	       else if(v>1){
	            System.out.println(-1);
	       }
	        else{
	        System.out.println(n-1-p);
	        }
	   }
	   catch(Exception e){
	       return;
	   }
	}
}
