题目背景

Y 同学正在为一个景观设计项目搭建一组阶梯。他手头有一排 NN 块高度不一的石墩。为了美观和安全,最终的阶梯必须是平稳上升的。幸运的是,他可以通过打磨来微调石墩的高度,但每块石墩最多只能打磨一次。

题目描述

给定一个长度为 NN 的序列 H=(H1,H2,,HN)H = (H_1, H_2, \dots, H_N),代表一排从左到右的石墩的高度。

对于每一个石墩 ii,你可以执行以下两种操作之一,且每个石墩最多只能操作一次

  1. 将其高度减少 1(HiHi1H_i \leftarrow H_i - 1)。
  2. 保持其高度不变。

你的任务是判断,是否存在一种操作方案,使得最终的石墩高度序列满足单调不减。也就是说,对于所有 1i<N1 \le i < N,都满足 HiHi+1H_i \le H_{i+1}

输入格式

第一行包含一个整数 NN。 第二行包含 NN 个整数 H1,H2,,HNH_1, H_2, \dots, H_N

输出格式

如果存在一种合法的操作方案,使得最终的序列单调不减,则输出 Yes。否则,输出 No

样例

样例输入 #1

5
1 2 1 1 3

样例输出 #1

Yes

样例输入 #2

4
1 3 2 1

样例输出 #2

No

样例输入 #3

5
1 2 3 4 5

样例输出 #3

Yes

样例输入 #4

1
1000000000

样例输出 #4

Yes

提示

样例 1 解释

初始高度为 [1, 2, 1, 1, 3]

  • 将第 2 个石墩的高度减少 1,序列变为 [1, 1, 1, 1, 3]
  • 这个新序列是单调不减的。

数据范围与约定

  • 1N1051 \le N \le 10^5
  • 1Hi1091 \le H_i \le 10^9
  • 所有输入均为整数。