#include<iostream>
#include<algorithm>
#define NUM 100
using namespace std;
int n; // 集装箱数量
int c; // 轮船的载重量
int w[NUM]; // 集装箱的重量数组
int x[NUM]; // 当前搜索的解向量
int r; // 剩余集装箱的重量
int cw; // 当前轮船的载重量
int bestw; // 当前最优载重量
int bestx[NUM]; // 当前最优解
void traceback(int t){
// 到达叶子结点
if(t > n){
if(cw > bestw){
bestw = cw;
for(int i=1; i<=n; i++)
bestx[i] = x[i];
}
return;
}
r -= w[t];
if(cw + w[t] <= c){
cw += w[t];
x[t] = 1;
traceback(t+1);
cw -= w[t];
}
if(cw + r > bestw){
x[t] = 0;
traceback(t+1);
}
r += w[t];
}
int main(){
for(int i=1; i<=n; i++){
scanf("%d", &w[i]);
r += w[i];
}
}