"use strict";
const main = arg => {
  let NumAmount = arg.split("\n")[0]*1;
  let row1 = arg.split("\n")[1].split(" ").map(x => x*1);
  // ansのデフォルト設定
  let ans = "Yes";
  // ループする
  // ループ用に小さい値を設定
  let pre = -9999;
  for(let i = 0; i < NumAmount; i++){
    // -1してそれでもpreより小さいようならpreにその値を代入
    if(row1[i] -1 > pre){
      pre = row1[i] -1
    }
    // それがダメなら-1しない値を代入
    else if( row1[i] > pre){
      pre = row1[i]
    // それでもダメならNoで終了
    } else {
      ans = "No"
      break;
    }
  }
  console.log(ans);
}

main(require('fs').readFileSync('/dev/stdin', 'utf8'));
