
import java.util.Arrays;
import java.util.Scanner;

public class Main {

  public static void main(String[] args) {
    // TODO 自動生成されたメソッド・スタブ
    Scanner sc = new Scanner(System.in);

    int n = sc.nextInt();

    long h[] = new long[n];
    boolean fix[] = new boolean[n];
    Arrays.fill(fix, false);
    for (int i = 0; i < n; i++) {
      h[i] = sc.nextInt();
    }

    for (int i = n - 1; i > 0; i--) {
      if (h[i] >= h[i - 1]) {
        continue;
      }
      if (h[i] == h[i - 1] - 1) {
        h[i - 1] = h[i - 1] - 1;
        continue;
      }

      System.out.println("No");
      return;
    }
    System.out.println("Yes");
  }
} import java.util.Arrays; Arrays java.util import java.util.Scanner; Scanner java.util public class Main {

  public static void main(String[] args) {
    // TODO 自動生成されたメソッド・スタブ
    Scanner sc = new Scanner(System.in);

    int n = sc.nextInt();

    long h[] = new long[n];
    boolean fix[] = new boolean[n];
    Arrays.fill(fix, false);
    for (int i = 0; i < n; i++) {
      h[i] = sc.nextInt();
    }

    for (int i = n - 1; i > 0; i--) {
      if (h[i] >= h[i - 1]) {
        continue;
      }
      if (h[i] == h[i - 1] - 1) {
        h[i - 1] = h[i - 1] - 1;
        continue;
      }

      System.out.println("No");
      return;
    }
    System.out.println("Yes");
  }
} Main public static void main(String[] args) {
    // TODO 自動生成されたメソッド・スタブ
    Scanner sc = new Scanner(System.in);

    int n = sc.nextInt();

    long h[] = new long[n];
    boolean fix[] = new boolean[n];
    Arrays.fill(fix, false);
    for (int i = 0; i < n; i++) {
      h[i] = sc.nextInt();
    }

    for (int i = n - 1; i > 0; i--) {
      if (h[i] >= h[i - 1]) {
        continue;
      }
      if (h[i] == h[i - 1] - 1) {
        h[i - 1] = h[i - 1] - 1;
        continue;
      }

      System.out.println("No");
      return;
    }
    System.out.println("Yes");
  } main {
    // TODO 自動生成されたメソッド・スタブ
    Scanner sc = new Scanner(System.in);

    int n = sc.nextInt();

    long h[] = new long[n];
    boolean fix[] = new boolean[n];
    Arrays.fill(fix, false);
    for (int i = 0; i < n; i++) {
      h[i] = sc.nextInt();
    }

    for (int i = n - 1; i > 0; i--) {
      if (h[i] >= h[i - 1]) {
        continue;
      }
      if (h[i] == h[i - 1] - 1) {
        h[i - 1] = h[i - 1] - 1;
        continue;
      }

      System.out.println("No");
      return;
    }
    System.out.println("Yes");
  } Scanner sc = new Scanner(System.in); sc new Scanner(System.in) int n = sc.nextInt(); n sc.nextInt() sc.nextInt sc long h[] = new long[n]; h new long[n] n boolean fix[] = new boolean[n]; fix new boolean[n] n Arrays.fill(fix, false) Arrays.fill Arrays fix false for (int i = 0; i < n; i++) {
      h[i] = sc.nextInt();
    } int i = 0; int i = 0; i 0 i < n i n i++ i++ i {
      h[i] = sc.nextInt();
    } {
      h[i] = sc.nextInt();
    } h[i] = sc.nextInt() h[i] h i sc.nextInt() sc.nextInt sc for (int i = n - 1; i > 0; i--) {
      if (h[i] >= h[i - 1]) {
        continue;
      }
      if (h[i] == h[i - 1] - 1) {
        h[i - 1] = h[i - 1] - 1;
        continue;
      }

      System.out.println("No");
      return;
    } int i = n - 1; int i = n - 1; i n - 1 n 1 i > 0 i 0 i-- i-- i {
      if (h[i] >= h[i - 1]) {
        continue;
      }
      if (h[i] == h[i - 1] - 1) {
        h[i - 1] = h[i - 1] - 1;
        continue;
      }

      System.out.println("No");
      return;
    } {
      if (h[i] >= h[i - 1]) {
        continue;
      }
      if (h[i] == h[i - 1] - 1) {
        h[i - 1] = h[i - 1] - 1;
        continue;
      }

      System.out.println("No");
      return;
    } if (h[i] >= h[i - 1]) {
        continue;
      } h[i] >= h[i - 1] h[i] h i h[i - 1] h i - 1 i 1 {
        continue;
      } continue; if (h[i] == h[i - 1] - 1) {
        h[i - 1] = h[i - 1] - 1;
        continue;
      } h[i] == h[i - 1] - 1 h[i] h i h[i - 1] - 1 h[i - 1] h i - 1 i 1 1 {
        h[i - 1] = h[i - 1] - 1;
        continue;
      } h[i - 1] = h[i - 1] - 1 h[i - 1] h i - 1 i 1 h[i - 1] - 1 h[i - 1] h i - 1 i 1 1 continue; System.out.println("No") System.out.println System.out System System.out "No" return; System.out.println("Yes") System.out.println System.out System System.out "Yes" String[] args args public class Main {

  public static void main(String[] args) {
    // TODO 自動生成されたメソッド・スタブ
    Scanner sc = new Scanner(System.in);

    int n = sc.nextInt();

    long h[] = new long[n];
    boolean fix[] = new boolean[n];
    Arrays.fill(fix, false);
    for (int i = 0; i < n; i++) {
      h[i] = sc.nextInt();
    }

    for (int i = n - 1; i > 0; i--) {
      if (h[i] >= h[i - 1]) {
        continue;
      }
      if (h[i] == h[i - 1] - 1) {
        h[i - 1] = h[i - 1] - 1;
        continue;
      }

      System.out.println("No");
      return;
    }
    System.out.println("Yes");
  }
} public class Main {

  public static void main(String[] args) {
    // TODO 自動生成されたメソッド・スタブ
    Scanner sc = new Scanner(System.in);

    int n = sc.nextInt();

    long h[] = new long[n];
    boolean fix[] = new boolean[n];
    Arrays.fill(fix, false);
    for (int i = 0; i < n; i++) {
      h[i] = sc.nextInt();
    }

    for (int i = n - 1; i > 0; i--) {
      if (h[i] >= h[i - 1]) {
        continue;
      }
      if (h[i] == h[i - 1] - 1) {
        h[i - 1] = h[i - 1] - 1;
        continue;
      }

      System.out.println("No");
      return;
    }
    System.out.println("Yes");
  }
} Main

import java.util.Arrays;
import java.util.Scanner;

public class Main {

  public static void main(String[] args) {
    // TODO 自動生成されたメソッド・スタブ
    Scanner sc = new Scanner(System.in);

    int n = sc.nextInt();

    long h[] = new long[n];
    boolean fix[] = new boolean[n];
    Arrays.fill(fix, false);
    for (int i = 0; i < n; i++) {
      h[i] = sc.nextInt();
    }

    for (int i = n - 1; i > 0; i--) {
      if (h[i] >= h[i - 1]) {
        continue;
      }
      if (h[i] == h[i - 1] - 1) {
        h[i - 1] = h[i - 1] - 1;
        continue;
      }

      System.out.println("No");
      return;
    }
    System.out.println("Yes");
  }
}
