问题 26641. -- 星宿归位

26641: 星宿归位

时间限制: 1 Sec  内存限制: 128 MB
献花: 233  解决: 20
[献花][花圈]

题目描述

ECNU-SEI有一个高大帅气名叫山舞泣的学生,他重修了大一的课程,又一次温习了排序问题。
所谓排序问题就是指将一个数列排成一个有序上升或下降的数列。
在手动排序了数以亿计个数列之后,他发现了这样一个事实。
定义一种名为星宿归位的操作:将数列中最后一个元素移动至数组中的第一位,并将原来的第一位及后面的数字依次后移。
大自然中有许多数列可以只通过星宿归位使其变成递增(非严格)的数列。

那么问题来了,给定一个数列,请你辅助山舞泣判断,是否可以只通过星宿归位将其变为递增(非严格)数列。如果可以请计算最少需要多少次星宿归位。


输入

多组输入数据。

每组数据第一行为一个整数n(1<=n<=100000),表示数列中数字的个数,第二行为n个数字。

输出

对每组输入数据,输出一行,包含一个整数,表示至少需要多少次操作才能获得递增(非严格)的数列

样例输入

2
2 1
3
1 3 2
2
1 2
1
8

样例输出

1
-1
0
0

提示

来源

[献花][花圈]