#include<iostream>
#include<algorithm>
using namespace std;
int sum[10005],w[10005];
int n,m,x=1,cnt=0;
bool cmp(int x,int y){
return x>y;
}
int main(){
cin>>n>>m;
for(int i=1;i<=n;i++){
cin>>w[i];
}
cnt=n;
sort(w+1,w+n+1,cmp);
for(int i=1;i<=n;i++){
for(int j=1;j<=n;j++){
if((sum[i]+w[j])<=m&&w[j]>=1){
if(sum[i]>=1){
cnt--;
}
sum[i]+=w[j];
w[j]=0;
}
}
}
cout<<cnt<<endl;
return 0;
}
贪心,排序后一个一个枚举