#ABC148D. Brick Break

Brick Break

题目描述

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.

我们有 NN 块砖,从左到右排成一行。

左边 (1iN)(1 \leq i \leq N)ii 块砖上写着一个整数 aia_i

在这些砖块中,你最多可以打碎 N1N-1 块你所选择的砖块。

假设还剩下 KK 块砖头。如果在每个整数 ii(1iK)(1 \leq i \leq K) ,从左边开始的 ii 个砖块上都写有整数 ii ,那么斯努克就会满意。

求满足斯努克的愿望所需的最少砖块数。如果他的愿望无法满足,则打印-1

输入格式

输入内容按以下格式标准输入:

NN
a1a_1 a2a_2 ...... aNa_N

输出格式

打印满足 Snuke 的愿望所需的最少砖块数量,如果他的愿望无法满足,则打印 -1

样例 #1

样例输入 #1

3
2 1 2

样例输出 #1

1

样例 #2

样例输入 #2

3
2 2 2

样例输出 #2

-1

样例 #3

样例输入 #3

10
3 1 4 1 5 9 2 6 5 3

样例输出 #3

7

样例 #4

样例输入 #4

1
1

样例输出 #4

0

说明

数据规模与约定

  • 输入值均为整数。
  • 1N2000001 \leq N \leq 200000
  • 1aiN1 \leq a_i \leq N

样例 11 解释

如果我们打碎最左边的砖块,剩下的砖块上从左到右写着整数 1122 ,在这种情况下,Snuke 将满足要求。

样例 22 解释

在这种情况下,没有办法打破一些砖块来满足 Snuke 的愿望。

样例 44 解释

可能根本不需要打破砖块。