Statement
Adam 是一个很有条理的人,一直热衷于整理自己的所有物品。尤其令他怀念的是,他年轻时花了很多时间把文件从电脑移动到光盘上。
这一过程涉及两条非常重要的规则。第一,为了确保所有光盘都能被清楚地贴上标签,Adam 绝不会在同一个光盘上放置超过两个文件。第二,他绝不会把单个文件拆分到多张光盘上。幸运的是,他使用的光盘总是足够大,使这一点成为可能。
回想起来,Adam 现在想知道自己当时是否以最佳方式安排文件,还是最终浪费了一些光盘。他将向你提供他所使用光盘的容量(他所有光盘容量相同)以及他存储的文件大小列表。请帮助 Adam 确定存储所有文件所需的最少光盘数——当然,要遵循那两条非常重要的规则。
Input
输入第一行给出测试用例数 T。接下来是 T 个测试用例。每个测试用例以一行开始,包含两个整数:要存储的文件数 N,以及要使用的光盘容量 X(以 MB 为单位)。下一行包含 N 个整数,表示文件大小 S$_{i}$(以 MB 为单位),以单个空格分隔。
### 数据范围
- 1 ≤ T ≤ 100.
- 1 ≤ X ≤ 700.
- 1 ≤ S$_{i}$ ≤ X.
- 1 ≤ N ≤ 10.
- 1 ≤ N ≤ 10
Output
对于每个测试用例,按测试用例顺序逐个输出答案,每个测试用例输出一行,包含 y,其中 y 是存储给定文件所需的最少光盘数。
Examples
Input
3
3 100
10 20 70
4 100
30 40 60 70
5 100
10 20 30 40 60Output
2
2
3Constraints
- Time limit: 10000 ms
- Memory limit: 1048576 KB
- Tag: greedy
- Tag: sorting
- Tag: two-pointers