L2-1 特殊的沉重球
题号:NC205549
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

StarrySky 在初入精灵宝可梦世界探索的时候,偶遇了一只野生的卡比兽,可是,StarrySky 扔完了手上的精灵球都不能捕捉成功,只好狠下心来让自己当时首发的路卡利欧使用出波导弹打死了它。

后来,StarrySky 发现了一个特殊的精灵球,叫作沉重球,它的特性是:当捕捉体重较大的宝可梦时,会增加成功率。

当发现沉重球之后,StarrySky 突然好后悔,如果在当时用沉重球捕捉卡比兽的话,或许局面就会完全不一样了。

抬头望天,晴空万里,一辆辆缆车在不远处滑过,上面的训练家以及他的宝可梦在友好的玩耍嬉闹,欣赏风景。

StarrySky 突发奇想,如果沉重球再特殊一点呢?

如果一个沉重球的最大承重为 w,只要放入其中的宝可梦的总重量不超过 w,不论几只宝可梦都可以放进去,然后再用缆绳挂起这个沉重球滑行,那个感觉似乎十分不错。

现在 StarrySky 手中有 n 只宝可梦,宝可梦的体重为 c_i,问至少需要多少个特殊的沉重球才能装下这 n 只宝可梦?

输入描述:

第一行输入两个正整数 n, w,表示宝可梦的数量以及每个特殊沉重球的最大承重。

第二行输入 n 个正整数c_1, c_2, ..., c_n,依次表示 n 只宝可梦的重量。

输出描述:

一行一个正整数,表示能够装下这 n 只宝可梦的最少的特殊沉重球的数量。
示例1

输入

复制
5 1996
1 2 1994 12 29

输出

复制
2

说明

第一个沉重球放入第 1, 2, 4, 5 只宝可梦,第二个沉重球放入第 3 只宝可梦,这种方法只需要 2 个沉重球。
放法不唯一,比如,也可以将第 2 只宝可梦放入第二个沉重球,但无论如何,该样例的最少所需的沉重球数量为两个。

备注:

对于  的评测用例,

对于所有评测用例,