#include using namespace std; using ll = long long; const int INF = (1 << 30); int main() { int N; cin >> N; vector R(N+1); for(int i = 1; i <= N-1; i++) cin >> R[i]; /* dp[i] = i番目の町までの最小回数 */ vector dp(N+1, INF); dp[1] = 0; for(int i = 1; i < N; i++) { for(int j = i+1; j <= R[i]; j++) { dp[j] = min(dp[i]+1, dp[j]); } } int ans = dp[N]; cout << ans << endl; return 0; }