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
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 Codechef
{
    static int r(int n,int a[])
    {
        int c=0;int ind=0;boolean flag=false;int d=0;
       for(int i=1;i<n;i++)
       {
          
           if(a[i]<a[i-1])
           {
               c=n-i;
               d=i;
           }
       }
      reverse(a,0,d-1);
      reverse(a,d,n-1);
      reverse(a,0,n-1);
         for(int i=1;i<n;i++)
       {
          
           if(a[i]<a[i-1])
           {
              return -1;
           }
       }
       return c;
    }
    static void reverse(int a[],int l,int h)
    {
        while(l<=h)
        {
            int t=a[l];
            a[l]=a[h];
            a[h]=t;
            l++;
            h--;
        }
    }
	public static void main (String[] args) throws java.lang.Exception
	{
		Scanner ob=new Scanner(System.in);
	    int n=ob.nextInt();
	    int a[]=new int[n];
	    for(int i=0;i<n;i++)
	    a[i]=ob.nextInt();
	    System.out.println(r(n,a));
	}
}
