炼金术师
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

爱德华以钢之炼金术师之名享誉全国,而今天他要完成弟弟阿尔冯斯提出的一个挑战。

已知爱德华和阿尔冯斯面前各摆了一块无限长的画布,画布上一开始均无任何颜色,且两块画布的最左端下标均设为。阿尔冯斯将使用次炼金术,第次炼金术会使他面前画布的区间染成第种颜色。

在阿尔冯斯使用完次炼金术后,爱德华也会使用若干次炼金术,每次炼金术他可以选择中的任意一种颜色,以及任意的一个右端点,将该画布的区间染成此次选择的颜色。

规定后面的染色会覆盖前面的染色,比如先将区间染成第种颜色,再将区间染成第种颜色,则此时区间的颜色是第3种颜色。

请问爱德华最少要使用多少次炼金术,才能把他面前的画布变成和阿尔冯斯的画布一样。

输入描述:

第一行一个正整数

接下来个正整数

输出描述:

输出爱德华最少要使用多少次炼金术。

示例1

输入

复制
3
1 2 3

输出

复制
1