#include #include #include using namespace std; int N, K; vector items_weight; int pack(int now, int weight_now){ if(now == N){ return weight_now; }else if(weight_now + items_weight[now] > K){ return pack(now + 1, weight_now); }else{ return max(pack(now + 1, weight_now), pack(now + 1, weight_now + items_weight[now])); } } int main(){ cin >> N >> K; items_weight.resize(N); for(int i = 0; i < N; i++){ cin >> items_weight[i]; } sort(items_weight.begin(), items_weight.end(), greater()); cout << pack(0, 0) << endl; }