又是跳跳乐
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

给定一个长度为n的数组,数组每个位置 i上都有一个数字,小顺从数组的第一个位置开始往后跳,他想跳到最后一个位置,每跳一步的时候都有如下两个选择:
1.他可以跳到当前位置的后一个位置,即从第i个位置跳到第个位置;
2.他可以跳到和他当前所在位置上的数字相同的任何一个位置上,即如果存在这样的一个数组1 2 3 1,他可以直接从第一个位置跳到第四个位置,因为这两个位置上的数字是相等的。
小顺想尽快完成游戏,请问他最快需要跳多少步才能到达最后一个位置?(即他最少需要做多少次选择)

输入描述:

输入包括两行,第一行包括一个整数,即数列的长度
第二行n个整数,表示数列中的每个数,以空格分隔。

输出描述:

输出一个整数,表示他需要的最小步数
示例1

输入

复制
4
1 2 3 1

输出

复制
1

说明

他可以直接跳到终点去,所以只用跳一步
示例2

输入

复制
6
3 2 4 3 1 6

输出

复制
3

备注:

题目保证小顺一定能从1号点跳到n号点