#include <bits/stdc++.h>
using namespace std;
const long long mod = 1000000007;
const long long K = 2;
long long add(long long a, long long b, long long mod) {
  a %= mod;
  b %= mod;
  a += b;
  if (a >= mod) a -= mod;
  if (a < 0) {
    a += mod;
    a %= mod;
  }
  return a;
}
long long mul(long long a, long long b, long long mod) {
  a %= mod;
  b %= mod;
  a *= b;
  return a % mod;
}
long long po(long long a, long long b, long long mod) {
  if (b == 0) return 1;
  if (b % 2 == 0) return po(mul(a, a, mod), b / 2, mod);
  return mul(a, po(mul(a, a, mod), (b - 1) / 2, mod), mod);
}
long long fact[1000003];
long long inv[1000003];
void fact0() {
  long long i, j;
  fact[0] = 1;
  for (i = 1; i <= 200000; i++) {
    fact[i] = i * fact[i - 1] % mod;
  }
  inv[0] = 1;
  inv[1] = 1;
  long long p = mod;
  for (i = 2; i <= 200000; i++) inv[i] = (p - (p / i) * inv[p % i] % p) % p;
  for (i = 2; i <= 200000; i++) {
    inv[i] *= inv[i - 1];
    inv[i] %= mod;
  }
}
signed main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  long long n;
  cin >> n;
  long long a[n];
  for (long long i = 0; i < n; i++) cin >> a[i];
  long long an = 1;
  long long enn = n - 1 - a[n - 1];
  for (long long i = n - 1; i >= 0; i--) {
    if (enn <= i) {
      enn = min(enn, i - a[i]);
      continue;
    }
    an++;
    enn = min(enn, i - a[i]);
  }
  cout << an;
  return 0;
}
