编程题
### 问题描述
小蓝玩一款闯关游戏,已知该游戏共有从 $1$ 到 $n$ 编号的 $n$ 个关卡,第 $i$ 关的难度为 $a_i$ ,每个关卡都有怪兽镇守。小蓝在通关时可以选择攻打怪兽与否。
小蓝初始时血量为 $q$ ,游戏要求小蓝必须从 $1$ 关闯到第 $n$ 关,闯关时规则如下:
- 若小蓝血量为 $0$ ,则小蓝本关无法攻打怪兽,也无法获得经验值;
- 若小蓝血量为 $k$ ( $k\neq 0$ ),本关难度为 $m$ ,又有 $m\leq{k}$ ,则小蓝本关可以选择攻打怪兽,如此可以获得 $1$ 个经验值,且由于小蓝的血量大于本关的难度,本次攻打怪兽不会使血量减少;
- 若小蓝血量为 $k$ ( $k\neq{0}$ ),本关难度为 $m$ ,又有 $m>k$ ,则小蓝本关可以选择攻打怪兽,如此可以获得 $1$ 个经验值,但是因为小蓝的血量低于本关难度,本次攻打怪兽会使血量减 $1$ ;小蓝也可以选择不攻打怪兽直接通关,如此本关则不能获得经验值,也不会使血量降低。
小蓝的经验值初始时为 $0$ 。小蓝想请你帮他求出,他闯过所有关卡后,最多能得到多少经验值。
### 输入格式
第一行包含两个整数 $n,q$ ,分别表示关卡总数和小蓝初始时的血量。
第二行包含 $n$ 个整数 $a_1,a_2,\dots,a_n$ ,表示关卡的难度。
### 输出格式
输出一个整数,表示小蓝闯过所有关卡后得到的经验值的最大值。
### 样例输入
```
5 2
5 1 2 4 3
```
### 样例输出
```
4
```
### 评测数据规模
对于所有评测数据, $1\leq{n}\leq{10^5 },1\leq{q}\leq{10^9 },1\leq{a_i}\leq{10^9 }$ 。