import qualified Data.Text as T
import qualified Data.Text.IO as T
import qualified Data.Text.Read as T

main :: IO ()
main = do
  (n : _) <- map unsafeSignedDecimal . T.words <$> T.getLine :: IO [Int]
  hs <- map unsafeSignedDecimal . T.words <$> T.getLine :: IO [Int]
  putStrLn . maybe "No" (const "Yes") . foldr step (Just (10 ^ 9)) $ hs
  where
    step _ Nothing = Nothing
    step h (Just m) | h <= m = Just h
                    | h == m + 1 = Just (h - 1)
                    | otherwise = Nothing

unsafeSignedDecimal :: T.Text -> Int
unsafeSignedDecimal s = case T.signed T.decimal s of
  Right (n, _) -> n
