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.
import java.io.*;
import java.util.*;

public class Main
{ 
    static BufferedReader br;
    static StringTokenizer st;
    static PrintWriter pr=new PrintWriter(new BufferedWriter(new OutputStreamWriter(System.out)));
    
    public static class AL<T> extends ArrayList<T> {};
    public static class HM<T,Integer> extends HashMap<T,T> {};
    public static class HS<T> extends HashSet<T> {};
    
    public static void main(String[] args) throws IOException 
	{
            FastReader fr=new FastReader();
            int n=fr.nxtInt(),a[]=new int[n],cnt=n,mn=n;
            
            for(int i=0;i<n;i++) a[i]=fr.nxtInt();

            for(int i=n-1;i>=0;i--)
            {
                if(i>=mn) cnt--;
                mn=Math.min(i-a[i],mn);
            }
            pr.println(cnt);
		pr.flush();
		pr.close();
    }
    
    
    static class FastReader 
    { 
        BufferedReader br; 
        StringTokenizer st; 
  
        public FastReader(){br = new BufferedReader(new InputStreamReader(System.in));} 
  
        String nxt() 
        { 
            while (st == null || !st.hasMoreElements()) 
            { 
                try{st=new StringTokenizer(br.readLine());} 
                catch (IOException  e){e.printStackTrace();} 
            } 
            return st.nextToken(); 
        } 
  
        int nxtInt(){return Integer.parseInt(nxt());} 
        long nxtLong(){return Long.parseLong(nxt());} 
        double nxtDoub(){return Double.parseDouble(nxt());} 
  
        String nxtLn() 
        { 
            String str = ""; 
            try{str = br.readLine();} 
            catch (IOException e){e.printStackTrace();} 
            return str; 
        } 
    }
}