编程题
### 问题描述
阿夸和妃爱喜欢下载文件。
她们共有一台电脑,电脑内存为 $m\texttt{B}$。阿夸想要下载的文件共有 $n$ 个,每个文件的大小为 $a_i\texttt{B}$。下载文件的过程中内存是动态,每 $1s$ 就会下载 $1\texttt{B}$ 的量,而阿夸会量子波动阅读法,她看一个文件只需要 $1s$ 的时间并且在看完之后会立刻删除该文件。开始一个文件没有下载,电脑也是空的,一秒内可以同时看文件且下载文件,每一秒内只能在下载一个文件。同时若电脑无剩余内存则在该时刻不能下载文件。阿夸想要知道最少花多少时间才能看完所有文件。
例如,$n=3,m=3$,文件一的大小为 $1\texttt{B}$,文件二的大小为 $2\texttt{B}$,文件三的大小为 $3\texttt{B}$。假设我们的下载顺序是:文件一、文件三、文件二。
- 第 $1s$ 开始时下载文件一,会在第 $1s$ 结束时下载好文件一。此时电脑内存只剩 $2\texttt{B}$。
- 第 $2s$ 开始时一边阅读文件一,一边开始下载文件三,会在第 $2s$ 结束时阅读完文件一并删除了文件一,并下载了文件三的 $1\texttt{B}$。此时电脑内存只剩 $2\texttt{B}$。
- 第 $3s$ 开始时仍在下载文件三,会在第 $3s$ 结束时又下载了文件三的 $1\texttt{B}$。此时电脑内存只剩 $1\texttt{B}$.
- 第 $4s$ 开始时仍在下载文件三,会在第 $4s$ 结束时下载好文件三。此时电脑内存只剩 $0\texttt{B}$。
- 第 $5s$ 开始时阅读文件三,但不能下载文件二,因为电脑无剩余内存。在第 $5s$ 结束时读完文件三并删除。此时电脑内存剩余 $3\texttt{B}$。
- 第 $6s$ 开始时下载文件二,会在第 $7s$ 结束时下载好文件二。此时电脑内存剩余 $1\texttt{B}$。
- 第 $8s$ 开始是阅读文件二,会在第 $8s$ 结束时读完文件二并删除。此时电脑内存剩余 $3\texttt{B}$。
- 所以此时总时长为 $8s$。但最优时长为 $7s$,下载顺序为文件一、文件二、文件三。
### 输入格式
输入包括两行:
第一行是两个整数 $n,m\ (1\leq n\leq 10^6,1\leq m\leq 10^9)$,分别表示文件数量和电脑内存大小。
第二行有 $n$ 个数 $a_1,a_2,\cdots,a_n\ (1\leq a_i\leq m)$,表示每一个文件的大小。
### 输出格式
输出包括一行:
最少的时间能看完所有文件,时间单位为 $s$.
### 样例输入
```text
3 5
1 3 5
```
### 样例输出
```text
10
```
### 说明
在样例中,阿夸会先下载文件一,花费了 $1s$,在读文件一的时候同时下载文件二,于是能在第 $4s$ 的时候下载完文件二,在第 $5s$ 读文件二时开始下载文件三,并在第 $9s$ 时下载完文件三,在第 $10s$ 读完文件三。
### 评测数据规模
对于 $100$% 的评测数据,$1\leq n\leq 10^6, 1\leq m \leq 10^9,1\leq a_i\leq m$。