#include <bits/stdc++.h>
using namespace std;
int a[50],n,c,ans;
bool used[50];
void dfs(int x,int v){
ans=max(c-v,ans);
if(x>n||v==0) {
return ;
}
for(int i = x ; i <= n ; i++ ){
if(v>=a[i]){
dfs(i+1,v - a[i]);
}
}
}
int main()
{
cin>>n>>c;
for(int i=1;i<=n;i++){
cin>>a[i];
}
dfs(1,c);
cout<<ans;
return 0;
}
MLE:Subtask #3
TLE:Subtask #4