fun main(args: Array<String>) {
    val N = Integer.parseInt(readLine())
    val line = readLine()
    var result = true
    if (line != null) {
        val list = line.split(" ")
        if (N == 2) {
            if (Integer.parseInt(list[1]) < Integer.parseInt(list[0])-1) {
                result = false
            }
        } else {
            var min = 0
            for (i in 1..(N - 1)) {
                if (i == 1) {
                    if (Integer.parseInt(list[1]) >= Integer.parseInt(list[0])) {
                        min = Integer.parseInt(list[1]) - 1
                    } else if (Integer.parseInt(list[1]) == Integer.parseInt(list[0]) - 1){
                        min = Integer.parseInt(list[1])
                    } else {
                        result = false
                        break
                    }
                } else {
                    if (Integer.parseInt(list[i]) < min) {
                        result = false
                        break
                    } else {
                        if (Integer.parseInt(list[i]) - 1 >= min) {
                            min = Integer.parseInt(list[i]) - 1
                        }
                    }
                }
            }
        }
    }
    if (result) {
        println("Yes")
    } else {
        println("No")
    }
}