//09
#include<iostream>
#include<queue>

using namespace std;

struct S{
  int t,p;
};

int main(){
  int n;
  cin>>n;
  int p[100000];
  for(int i=0;i<n;i++){
    cin>>p[i];
  }
  queue<S> que;
  S is={0,0};
  que.push(is);
  bool ps[100000]={true};
  for(;;){
    S c=que.front();
    for(int i=1;i<=6;i++){
      int x=c.p+i;
      for(;;){
	if(x>=n-1)goto end;
	if(ps[x]++)break;
	if(p[x]==0){
	  S n={c.t+1,x};
	  que.push(n);
	  break;
	}
	x+=p[x];
      }
    }
    que.pop();
  }
  end:
  cout<<que.front().t+1<<endl;
}