// 方法一:保存布尔型dp数组表示该格子能否到达
import java.util.Scanner;
 
public class Main{
     
    public static void main(String[] args){
        int n;
        Scanner sc = new Scanner(System.in);
        n = sc.nextInt();

        int[] a = new int[n];
        for (int i = 0; i < n; i++) {
            a[i] = sc.nextInt();
        }
        boolean[] dp = new boolean[n];
        dp[0] = true;
        for (int i = 0; i < n; i++) {
            if (dp[i]) {
                for (int j = i + 1; (j <= i + a[i]) && j < n; j++) {
                    dp[j] = true;
                }
            } else {
                break;
            }
        }
        System.out.println(dp[n - 1]);
        
    }
    
}

// 方法二:保存dp记录能到达的最大距离
import java.util.Scanner;
 
public class Main{
     
    public static void main(String[] args){
        int n;
        Scanner sc = new Scanner(System.in);
        n = sc.nextInt();

        int[] a = new int[n];
        for (int i = 0; i < n; i++) {
            a[i] = sc.nextInt();
        }
        int dp = a[0];
        for (int i = 1; i < n && i <= dp; i++) {
            dp = Math.max(dp, a[i] + i);
        }
        System.out.println(dp >= n-1);
        
    }
    
}