Hands that shed innocent blood!

There are n guilty people in a line, the i-th of them holds a claw with length Li. 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 < i and j ≥ i - Li.

You are given lengths of the claws. You need to find the total number of alive people after the bell rings.

Input

The first line contains one integer n (1 ≤ n ≤ 106) — the number of guilty people.

Second line contains n space-separated integers L1, L2, ..., Ln (0 ≤ Li ≤ 109), where Li is the length of the i-th person's claw.

Output

Print one integer — the total number of alive people after the bell rings.

Examples

Input

4
0 1 0 10


Output

1


Input

2
0 0


Output

2


Input

10
1 1 3 0 0 0 2 1 0 3


Output

3

Note

In first sample the last person kills everyone in front of him.

/*
 * To change this license header, choose License Headers in Project Properties.
 * To change this template file, choose Tools | Templates
 * and open the template in the editor.
 */


import java.io.BufferedInputStream;
import java.io.BufferedOutputStream;
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.nio.charset.StandardCharsets;
import java.util.Arrays;


/**
 *
 * @author jmbangue
 */
public class Wrath {

    public static void main(String[] args){
        BufferedInputStream bf = new BufferedInputStream(System.in);
        BufferedReader r = new BufferedReader(
                new InputStreamReader(bf, StandardCharsets.UTF_8));
        OutputStream out = new BufferedOutputStream ( System.out );
        try {
            int n = readInt(bf);
            int[] a = new int[n];
            int[] b = new int[n];
            int[] c = new int[n];
            
            
            for(int i=0;i<n;i++){
                a[i] = readInt(bf);
            }
            int nm = 0;
            if (n>1){
                c[n-1] = a[n-1];
                for(int i=n-2;i>=0;i--){
                    if (c[i+1]>0){
                        nm++;
                        c[i+1]--;
                    }
                    c[i] = Math.max(a[i],c[i+1]);
                }
            } 
            
            out.write(((n-nm)+"\n").getBytes());
            out.flush();
        }catch(Exception ex){
            ex.printStackTrace();
        }
        
         
    }
    
    private static int readInt(InputStream in) throws IOException {
            int ret = 0;
            boolean dig = false;

            for (int c = 0; (c = in.read()) != -1; ) {
                if (c >= '0' && c <= '9') {
                    dig = true;
                    ret = ret * 10 + c - '0';
                } else if (dig) break;
            }

            return ret;
    }
}
