import java.util.Scanner;

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();

	int max = H[N - 1];
	boolean bl = true;
	for (int i = N - 2; i >= 0; i--) {
	    if (H[i] == H[i + 1] + 1) {
		H[i]--;
	    }

	    if (H[i] <= max) {
		max = H[i];
	    } else {
		bl = false;
	    }
	}

	if (bl)
	    System.out.println("Yes");
	else
	    System.out.println("No");
	    
    }
} import java.util.Scanner; Scanner java.util 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();

	int max = H[N - 1];
	boolean bl = true;
	for (int i = N - 2; i >= 0; i--) {
	    if (H[i] == H[i + 1] + 1) {
		H[i]--;
	    }

	    if (H[i] <= max) {
		max = H[i];
	    } else {
		bl = false;
	    }
	}

	if (bl)
	    System.out.println("Yes");
	else
	    System.out.println("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();

	int max = H[N - 1];
	boolean bl = true;
	for (int i = N - 2; i >= 0; i--) {
	    if (H[i] == H[i + 1] + 1) {
		H[i]--;
	    }

	    if (H[i] <= max) {
		max = H[i];
	    } else {
		bl = false;
	    }
	}

	if (bl)
	    System.out.println("Yes");
	else
	    System.out.println("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();

	int max = H[N - 1];
	boolean bl = true;
	for (int i = N - 2; i >= 0; i--) {
	    if (H[i] == H[i + 1] + 1) {
		H[i]--;
	    }

	    if (H[i] <= max) {
		max = H[i];
	    } else {
		bl = false;
	    }
	}

	if (bl)
	    System.out.println("Yes");
	else
	    System.out.println("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 int max = H[N - 1]; max H[N - 1] H N - 1 N 1 boolean bl = true; bl true for (int i = N - 2; i >= 0; i--) {
	    if (H[i] == H[i + 1] + 1) {
		H[i]--;
	    }

	    if (H[i] <= max) {
		max = H[i];
	    } else {
		bl = false;
	    }
	} int i = N - 2; int i = N - 2; i N - 2 N 2 i >= 0 i 0 i-- i-- i {
	    if (H[i] == H[i + 1] + 1) {
		H[i]--;
	    }

	    if (H[i] <= max) {
		max = H[i];
	    } else {
		bl = false;
	    }
	} {
	    if (H[i] == H[i + 1] + 1) {
		H[i]--;
	    }

	    if (H[i] <= max) {
		max = H[i];
	    } else {
		bl = false;
	    }
	} if (H[i] == H[i + 1] + 1) {
		H[i]--;
	    } 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]--;
	    } H[i]-- H[i] H i if (H[i] <= max) {
		max = H[i];
	    } else {
		bl = false;
	    } H[i] <= max H[i] H i max {
		max = H[i];
	    } max = H[i] max H[i] H i {
		bl = false;
	    } bl = false bl false if (bl)
	    System.out.println("Yes");
	else
	    System.out.println("No"); bl System.out.println("Yes") System.out.println System.out System System.out "Yes" System.out.println("No") System.out.println System.out System System.out "No" String[] args args
import java.util.Scanner;

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();

	int max = H[N - 1];
	boolean bl = true;
	for (int i = N - 2; i >= 0; i--) {
	    if (H[i] == H[i + 1] + 1) {
		H[i]--;
	    }

	    if (H[i] <= max) {
		max = H[i];
	    } else {
		bl = false;
	    }
	}

	if (bl)
	    System.out.println("Yes");
	else
	    System.out.println("No");
	    
    }
}