#include <bits/stdc++.h>
using namespace std;
int n;
int MAS[100020];
int CST[100020];
typedef pair<int,int>P;
priority_queue<P, vector<P>, greater<P> >Q;
int main(){
	cin>>n;
	for(int i=0;i<n;i++){
		cin>>MAS[i];
		CST[i]=-1;
	}
	for(int i=1;i<10;i++){
		MAS[n+i-1]=-1*i;
		CST[n+i-1]=-1;
	}
	Q.push(P(0,0));
	while(CST[n-1]<0){
		P p=Q.top();
		Q.pop();
		if(CST[p.second]>=0)continue;
		CST[p.second]=p.first;
		if(MAS[p.second]==0){
			for(int i=1;i<=6;i++){
				if(CST[p.second+i]<0){
					Q.push(P(1+p.first,p.second+i));
				}
			}
		}
 		else if(CST[p.second+MAS[p.second]]<0){
			Q.push(P(p.first,p.second+MAS[p.second]));
		}
	}
	
	cout<<CST[n-1]<<endl;
	
	return 0;
}
