catnum, maxw = map(int, input().split())
cat = []
for _ in range(catnum):
cat.append(int(input()))
cats = sorted(cat, reverse=True)
cars = [[]]
def dfs(m,n):
global maxw
if m > len(cats)-1 or n == len(cats):
print(n)
return
else:
w = cats[m]
for i in range(n):
if w <= maxw - sum(cars[i]):
cars[i].append(w)
dfs(m+1,n)
break
else:
cars.append([])
cars[-1].append(w)
dfs(m+1,n+1)
dfs(0,1)
m是即将上车的猫的下标,n是已有的车数。14个测试点有3个WA,其它都是AC,求大佬指正