编程题
### 问题描述
小齐是一位出色的绘画艺术家,她决定尝试一种更为极简主义的绘画风格,将原本的二维画作变成了一维画作。
她的一维画作由一个长度为 $N$ 的颜色数组表示,颜色范围为 $1$ 到 $N$。小齐采用的绘画风格依然没有改变:她从一个空白的画布开始,逐渐叠加一系列“矩形”颜色区间,尽管在这个一维情境中,这些“矩形”实际上就是不相交的颜色区间。她确保每种颜色 $1 \ldots N$ 恰好使用一次,尽管最终有些颜色可能被完全覆盖。
然而,小齐的竞争对手小白似乎已经破解了她的绘画方法,采用了与前一个问题相似的策略:小白将绘制一组不相交的区间,等待它们干燥,然后再绘制另一组不相交的区间,依此类推。小白在整个过程中最多只能绘制每种颜色的一个区间。请计算小白复制给定一维小齐画作所需的最少回合数。
### 输入格式
第一行输入一个整数 $N$ 表示颜色的数量。
接下来的 $N$ 行,每行包含一个整数,表示一维画作中每个位置的颜色,颜色的范围是 $0 \ldots N$,其中 $0$ 表示空白的位置。
### 输出格式
输出一个整数,表示复制该画作所需的最少回合数。如果这不可能是小齐的真迹(即不能使用分层次序列的方式绘制),则输出 $-1$。
### 样例输入
```
7
0
1
4
5
1
3
3
```
### 样例输出
```
2
```
### 评测数据规模
$1 \leq N \leq 100,000$。