점프덕
Time Limit: 1 SecMemory Limit: 1024 MiB

문제

인덕이는 '점프덕'이라는 게임을 개발했다. 안뇽이는 인덕이가 게임을 얼마나 잘 만들었는지 확인하기 위해 게임의 테스터가 되기로 했다.

점프덕의 게임판은 오른쪽으로 일렬로 이어진 개의 칸으로 이루어져 있다. 칸은 왼쪽부터 번부터 번까지 순서대로 번호가 붙어 있다. 플레이어는 처음에 번 칸에 있으며, 번 칸이 목적지이다. 목적지를 제외한 번 칸 에는 음이 아닌 정수 가 적혀 있다. 인 칸은 낭떠러지 칸이며, 플레이어는 이 칸으로 점프할 수 없다. 인 칸에서는 이상 이하의 정수를 골라 그만큼 오른쪽으로 점프할 수 있다. 단, 점프한 뒤의 위치가 번 칸보다 오른쪽이 되는 점프는 할 수 없다. 목적지에 도착하면 게임을 클리어한다.

게임을 하다 화가 난 안뇽이는 게임 개발자 인덕이를 골탕 먹이기 위해, 번 칸과 번 칸을 제외한 칸 몇 개를 낭떠러지 칸으로 바꾸어 게임을 클리어할 수 없게 만들려고 한다. 다만 너무 많은 칸을 낭떠러지 칸으로 바꿔버리면 인덕이가 눈치챌 것이기 때문에, 바꾸는 칸의 수를 최소화하려고 한다. 안뇽이를 위해 최소한의 칸만을 낭떠러지 칸으로 바꾸어 게임을 클리어할 수 없게 만드는 방법을 알려주자!

입력

첫 번째 줄에 칸의 수 이 주어진다. ()

두 번째 줄에 개의 정수 이 공백으로 구분되어 주어진다. 이면 번 칸이 처음부터 낭떠러지 칸임을 의미한다. (, )

출력

게임을 클리어할 수 없게 만들기 위해 새로 낭떠러지 칸으로 바꿔야 하는 칸의 최소 개수를 라고 하자.

게임을 클리어할 수 없게 만드는 방법이 존재한다면 첫 번째 줄에 를 출력한다.

두 번째 줄에 새로 낭떠러지 칸으로 바꿀 서로 다른 칸 번호 개를 공백으로 구분하여 출력한다. 이때, 각 번호는 이상 이하의 정수여야 한다. 출력 순서는 상관없다.

게임을 클리어할 수 없게 만드는 방법이 존재하지 않는다면 첫 번째 줄에 -1을 대신 출력한다.

Example Input 1
10
3 1 4 1 5 9 2 6 5
Example Output 1
2
3 5 
Example Input 2
4
2 1 0
Example Output 2
0
Example Input 3
5
4 1 2 1
Example Output 3
-1
Language-Specific Restrictions