100 atcoder#ABC148D. [ABC148D] Brick Break

[ABC148D] Brick Break

Score : 400400 points

Problem Statement

We have NN bricks arranged in a row from left to right.

The ii-th brick from the left (1iN)(1 \leq i \leq N) has an integer aia_i written on it.

Among them, you can break at most N1N-1 bricks of your choice.

Let us say there are KK bricks remaining. Snuke will be satisfied if, for each integer ii (1iK)(1 \leq i \leq K), the ii-th of those brick from the left has the integer ii written on it.

Find the minimum number of bricks you need to break to satisfy Snuke's desire. If his desire is unsatisfiable, print -1 instead.

Constraints

  • All values in input are integers.
  • 1N2000001 \leq N \leq 200000
  • 1aiN1 \leq a_i \leq N

Input

Input is given from Standard Input in the following format:

NN

a1a_1 a2a_2 ...... aNa_N

Output

Print the minimum number of bricks that need to be broken to satisfy Snuke's desire, or print -1 if his desire is unsatisfiable.

3
2 1 2
1

If we break the leftmost brick, the remaining bricks have integers 11 and 22 written on them from left to right, in which case Snuke will be satisfied.

3
2 2 2
-1

In this case, there is no way to break some of the bricks to satisfy Snuke's desire.

10
3 1 4 1 5 9 2 6 5 3
7
1
1
0

There may be no need to break the bricks at all.