{"raw_statement":[{"iden":"statement","content":"Freda 和 rainbow 饲养了 $N(N\\le 18)$ 只小猫，这天，小猫们要去爬山。经历了千辛万苦，小猫们终于爬上了山顶，但是疲倦的它们再也不想徒步走下山了\n\nFreda 和 rainbow 只好花钱让它们坐索道下山。索道上的缆车最大承重量为 $W$，而 $N$ 只小猫的重量分别是 $C_1,C_2,\\dots C_N$。当然，每辆缆车上的小猫的重量之和不能超过 $W(1\\le C_i,W \\le 10^8)$。每租用一辆缆车，Freda 和 rainbow 就要付 $1$ 美元，所以他们想知道，最少需要付多少美元才能把这 $N$ 只小猫都运送下山？"},{"iden":"input","content":"第一行包含两个用空格隔开的整数，$N$ 和 $W$。\n接下来 $N$ 行每行一个整数，其中第 $i+1$ 行的整数表示第 $i$ 只小猫的重量 $C_i$。"},{"iden":"output","content":"输出一个整数，最少需要多少美元，也就是最少需要多少辆缆车。"}],"translated_statement":null,"sample_group":[["5 1996\n1\n2\n1994\n12\n29","2"]],"show_order":[],"formal_statement":null,"simple_statement":null,"has_page_source":false}