#P1021. 【挑战题】缆车

【挑战题】缆车

题目描述

核晶学院组织爬山,共有n名学生参与。 同学们爬到山顶后,疲倦的他们再也不想徒步走下山了。 于是他们决定坐缆车下山,缆车的最大承重为w,第i位学生的重量为ai。 当然,每量缆车上学生的重量之和不能大于w。 每租用一辆缆车,同学们将要支付1元钱。 请你设计一个程序,算出他们最少需要支付多少钱才能全员乘坐缆车下山。

输入格式

输入包括两行。 第一行包含两个整数n和w,代表共有n名学生和缆车的承重w。 接下来的一行包含n个数,第i个数为ai,代表第i名学生的重量。

输出格式

输出包含一个整数,为同学们最终要支付的钱。

样例 #1

样例输入 #1

5 1996
1 2 1994 12 29 2

样例输出 #1

2

样例 #2

样例输入 #2

5 100
30 40 50 45 70

样例输出 #2

3

提示

对于 100%100\% 的数据,1n101 \leq n\leq 101aiw100001 \leq a_i \leq w \leq 10000