Hands that shed innocent blood!

There are *n* guilty people in a line, the *i*-th of them holds a claw with length *L*<sub class="lower-index">*i*</sub>. The bell rings and every person kills some of people in front of him. All people kill others at the same time. Namely, the *i*-th person kills the *j*-th person if and only if *j* &lt; *i* and *j* ≥ *i* - *L*<sub class="lower-index">*i*</sub>.

You are given lengths of the claws. You need to find the total number of alive people after the bell rings.
The first line contains one integer *n* (1 ≤ *n* ≤ 10<sup class="upper-index">6</sup>) — the number of guilty people.

Second line contains *n* space-separated integers *L*<sub class="lower-index">1</sub>, *L*<sub class="lower-index">2</sub>, ..., *L*<sub class="lower-index">*n*</sub> (0 ≤ *L*<sub class="lower-index">*i*</sub> ≤ 10<sup class="upper-index">9</sup>), where *L*<sub class="lower-index">*i*</sub> is the length of the *i*-th person's claw.
In first sample the last person kills everyone in front of him.
4
0 1 0 10
1
2
0 0
2
10
1 1 3 0 0 0 2 1 0 3
3
10
0 0 2 0 0 3 3 2 2 0
2
1
0
1
5
0 0 0 1 0
4
6
3 1 1 0 3 3
1
8
0 0 0 1 0 0 1 2
5
1
1000000000
1
2
1 3
1
2
1000000000 1000000000
1
11
1 0 0 1 1 3 2 0 0 2 3
4
1
1
1
#https://codeforces.com/problemset/problem/892/B
'''
Comment
- The person at the last index of the array is certainly alive because there aren't any person's positions who
is behind him.
- So the answer of this problem is always greater or equal to 1.
- At current position of a person (called is I), he can kill the people who are in front of him (called is J) if J >= I - L[I],
so to solve this problem, we just count the number of position which J < I and J < I - L[I] is the number of people are still alive.
'''

if __name__ == "__main__":
    n = int(input());
    pp = list(map(int, input().split()))
    res = 0;
    behind = int(1e9 + 100)

    for i in range(n - 1, -1, -1):
        # else with the case j >= i - L[i]
        if i < behind:
            res += 1 

        # update behind for next loop
        if behind > i - pp[i]: 
            behind = i - pp[i]

        '''
        if behind is small, we will have many chance to kill as many people as possible, so if 
        behind > i - pp[i] of current person, we will update the variable behind (value behind of current person, called is J), 
        from here to the next time which the variable was updated, the number of people which their index >= behind 
        is the number of people was killed by the person J

        '''

    print(res)