import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        int N = sc.nextInt();
        int[] H = new int[N];

        for (int i = 0; i < N; i++) H[i] = sc.nextInt();

        boolean isControllable = true;

        for (int i = N - 1; i > 0; i--) {
            if (H[i - 1] - 1 > H[i]) {
                isControllable = false;
                break;
            } else if (H[i - 1] > H[i]) {
                H[i - 1]--;
            }
        }

        System.out.println(isControllable ? "Yes" : "No");
    }
} import java.util.*; util.* java public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        int N = sc.nextInt();
        int[] H = new int[N];

        for (int i = 0; i < N; i++) H[i] = sc.nextInt();

        boolean isControllable = true;

        for (int i = N - 1; i > 0; i--) {
            if (H[i - 1] - 1 > H[i]) {
                isControllable = false;
                break;
            } else if (H[i - 1] > H[i]) {
                H[i - 1]--;
            }
        }

        System.out.println(isControllable ? "Yes" : "No");
    }
} Main public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        int N = sc.nextInt();
        int[] H = new int[N];

        for (int i = 0; i < N; i++) H[i] = sc.nextInt();

        boolean isControllable = true;

        for (int i = N - 1; i > 0; i--) {
            if (H[i - 1] - 1 > H[i]) {
                isControllable = false;
                break;
            } else if (H[i - 1] > H[i]) {
                H[i - 1]--;
            }
        }

        System.out.println(isControllable ? "Yes" : "No");
    } main {
        Scanner sc = new Scanner(System.in);

        int N = sc.nextInt();
        int[] H = new int[N];

        for (int i = 0; i < N; i++) H[i] = sc.nextInt();

        boolean isControllable = true;

        for (int i = N - 1; i > 0; i--) {
            if (H[i - 1] - 1 > H[i]) {
                isControllable = false;
                break;
            } else if (H[i - 1] > H[i]) {
                H[i - 1]--;
            }
        }

        System.out.println(isControllable ? "Yes" : "No");
    } Scanner sc = new Scanner(System.in); sc new Scanner(System.in) int N = sc.nextInt(); N sc.nextInt() sc.nextInt sc int[] H = new int[N]; H new int[N] N 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] H i sc.nextInt() sc.nextInt sc boolean isControllable = true; isControllable true for (int i = N - 1; i > 0; i--) {
            if (H[i - 1] - 1 > H[i]) {
                isControllable = false;
                break;
            } else if (H[i - 1] > H[i]) {
                H[i - 1]--;
            }
        } int i = N - 1; int i = N - 1; i N - 1 N 1 i > 0 i 0 i-- i-- i {
            if (H[i - 1] - 1 > H[i]) {
                isControllable = false;
                break;
            } else if (H[i - 1] > H[i]) {
                H[i - 1]--;
            }
        } {
            if (H[i - 1] - 1 > H[i]) {
                isControllable = false;
                break;
            } else if (H[i - 1] > H[i]) {
                H[i - 1]--;
            }
        } if (H[i - 1] - 1 > H[i]) {
                isControllable = false;
                break;
            } else if (H[i - 1] > H[i]) {
                H[i - 1]--;
            } H[i - 1] - 1 > H[i] H[i - 1] - 1 H[i - 1] H i - 1 i 1 1 H[i] H i {
                isControllable = false;
                break;
            } isControllable = false isControllable false break; if (H[i - 1] > H[i]) {
                H[i - 1]--;
            } H[i - 1] > H[i] H[i - 1] H i - 1 i 1 H[i] H i {
                H[i - 1]--;
            } H[i - 1]-- H[i - 1] H i - 1 i 1 System.out.println(isControllable ? "Yes" : "No") System.out.println System.out System System.out isControllable ? "Yes" : "No" isControllable "Yes" "No" String[] args args public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        int N = sc.nextInt();
        int[] H = new int[N];

        for (int i = 0; i < N; i++) H[i] = sc.nextInt();

        boolean isControllable = true;

        for (int i = N - 1; i > 0; i--) {
            if (H[i - 1] - 1 > H[i]) {
                isControllable = false;
                break;
            } else if (H[i - 1] > H[i]) {
                H[i - 1]--;
            }
        }

        System.out.println(isControllable ? "Yes" : "No");
    }
} public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        int N = sc.nextInt();
        int[] H = new int[N];

        for (int i = 0; i < N; i++) H[i] = sc.nextInt();

        boolean isControllable = true;

        for (int i = N - 1; i > 0; i--) {
            if (H[i - 1] - 1 > H[i]) {
                isControllable = false;
                break;
            } else if (H[i - 1] > H[i]) {
                H[i - 1]--;
            }
        }

        System.out.println(isControllable ? "Yes" : "No");
    }
} Main
import java.util.*;

public class Main {
    public static void main(String[] args) {
        Scanner sc = new Scanner(System.in);

        int N = sc.nextInt();
        int[] H = new int[N];

        for (int i = 0; i < N; i++) H[i] = sc.nextInt();

        boolean isControllable = true;

        for (int i = N - 1; i > 0; i--) {
            if (H[i - 1] - 1 > H[i]) {
                isControllable = false;
                break;
            } else if (H[i - 1] > H[i]) {
                H[i - 1]--;
            }
        }

        System.out.println(isControllable ? "Yes" : "No");
    }
}