#abc148d. [abc148_d]Brick Break

[abc148_d]Brick Break

问题描述

我们有 NN 块砖按从左到右的顺序排列。

左起第 ii 块砖 (1iN)(1 \leq i \leq N) 上写着整数 aia_i

在这些砖中,你可以选择至多破坏 N1N-1 块。

假设剩下 KK 块砖。如果对于每个整数 ii (1iK)(1 \leq i \leq K),从左起的第 ii 块砖上写着整数 ii,那么 Snuke 将会满意。

找出需要破坏的最少砖块数以满足 Snuke 的愿望。如果无法满足他的愿望,则打印 -1

约束条件

  • 输入中的所有值都是整数。
  • 1N2000001 \leq N \leq 200000
  • 1aiN1 \leq a_i \leq N

输入

输入从标准输入中给出,格式如下:

NN

a1a_1 a2a_2 ...... aNa_N

输出

打印需要破坏的最少砖块数以满足 Snuke 的愿望,如果无法满足则打印 -1


示例输入 1

3
2 1 2

示例输出 1

1

如果我们破坏最左边的砖块,剩下的砖块从左到右上写着整数 1122,这样 Snuke 就会满意。


示例输入 2

3
2 2 2

示例输出 2

-1

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


示例输入 3

10
3 1 4 1 5 9 2 6 5 3

示例输出 3

7

示例输入 4

1
1

示例输出 4

0

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