#include<bits/stdc++.h>
using namespace std;
const int N=1e6+5;
int a[N];
int n,L,ans;
inline int read(){
int x=0,f=1;char c=getchar();
while(c<'0'||c>'9'){if(c=='-')f=-f;c=getchar();}
while(c>='0'&&c<='9'){x=(x<<3)+(x<<1)+(c^48);c=getchar();}
return x*f;
}
int main(){
n=read();L=n+1;
for(int i=1;i<=n;i++)a[i]=read();
for(int i=n;i;i--){
if(i<L)++ans;
L=min(L,max(1,i-a[i]));//边界情况
}
return printf("%d",ans),0;
}
09-16
09-16
09-16