ICPC 子区域赛颁奖典礼结束后,会场里漂浮着大量的气球。会场经理非常生气,因为明天还要举办另一场活动,必须把这些气球清理掉。幸运的是,今年 Carlinhos 带着他的弓箭准备好了射破这些气球。
同样幸运的是,由于空调气流的影响,所有气球都位于同一个垂直平面内(即平行于墙壁的平面),尽管它们的高度和位置各不相同。
Carlinhos 将从会场的左侧,在选定的高度向右侧射箭。每支箭从左向右移动,保持在射出时的高度,且位于气球所在的垂直平面内。当箭碰到一个气球时,气球会破裂,而箭会继续向右移动,但高度会降低 1。换句话说,如果箭的高度为 $H$,在射破一个气球后,它会以 $H - 1$ 的高度继续飞行。
Carlinhos 希望用尽可能少的箭射破所有气球。你能帮帮他吗?
输入格式
第一行包含一个整数 $N$,表示气球的数量($1 \le N \le 5 \times 10^5$)。由于所有气球都在同一个垂直平面内,我们定义气球的高度与 $y$ 轴相关,气球的位置与 $x$ 轴相关。气球编号从 $1$ 到 $N$。气球编号表示它们的位置,从最左侧(气球 $1$)到最右侧(气球 $N$),与它们的高度无关。对于所有 $i$,气球 $i$ 的位置与气球 $i+1$ 的位置不同。第二行包含 $N$ 个整数 $H_i$,其中 $H_i$ 表示第 $i$ 个气球的高度($1 \le H_i \le 10^6$,对于 $1 \le i \le N$)。
输出格式
程序必须输出一行,包含一个整数,即 Carlinhos 为射破所有气球所需的最少箭数。
样例
输入样例 1
5 3 2 1 5 4
输出样例 1
2
输入样例 2
4 1 2 3 4
输出样例 2
4
输入样例 3
6 5 3 2 4 6 1
输出样例 3
3