n = gets.to_i
h = gets.split(' ').map(&:to_i)
count = 0
(n-1).times do |a|
    current = h[a]
    #次の階段の方が二段以上低い場合、単調非減少はできない
    if h[a+1] - h[a] <= -2
        puts 'No'
        exit
    # 次の階段の方が一段低い場合、今の段差を一段下げれば単調非減少になる可能性はある。
    # 配列の中で2回以上一段低い場所がある場合は、単調非減少にならない。
    elsif h[a+1] - h[a] == -1 
        count = count + 1
        if count >= 2
            puts 'No'
            exit
        end
        next
    # 次の階段が同じ高さまたは高い場合は単調非減少になっているので、次のループにいく
    else
        next
    end
end

puts 'Yes'