ibasic은 디미고의 부지인 광덕산이 마음에 들지 않아 새로운 산을 그리기로 했다.
ibasic이 그린 산은 차원 평면 위의 개의 점 으로 표현할 수 있다. 모든 는 음이 아닌 정수이며 이다.
ibasic은 자신이 그린 산을 으로 만들고자 한다. 은 인 모든 에 대해 인 산이다.
ibasic은 자신이 그린 산을 으로 만들기 위해 그림을 다음과 같이 수정할 수 있다.
- 인 두 정수 , 을 골라 에 을 더한다.
- 인 두 정수 , 을 골라 에 을 뺀다.
그림을 수정하다가 그림이 망가지면 안 되기 때문에 그림을 수정한 뒤에도 모든 는 이상이어야 한다.
그림을 수정하는 것은 상당히 귀찮은 작업이므로 ibasic은 그림을 최소한으로 수정하기로 했다. ibasic이 그린 산을 으로 만들기 위해 그림을 최소 몇 번 수정해야 하는지 구하시오.
Input
첫 번째 줄에 정수 이 주어진다.
두 번째 줄에 산을 나타내는 개의 정수 이 공백으로 구분되어 주어진다.
Output
첫 번째 줄에 ibasic이 그린 산을 으로 만들기 위해 필요한 최소 수정 횟수를 출력한다. 단, 수정을 어떻게 해도 ibasic이 그린 산을 으로 만들 수 없다면 -1 을 대신 출력한다.
Subtasks
Samples
예제 1
입력
4
0 3 2 4 0
출력
3
예제 2
입력
5
0 3 2 5 9 0
출력
-1