#include<bits/stdc++.h>
using namespace std;
long long w[101];
int n;
long long k;
int ans;
void dfs(int x,int all){
if(all<=k){
ans=max(ans,all);
}
if(all>k) return;
for(int i=x;i>=1;i--){
if(all+w[i]<=k){
dfs(i-1,all+w[i]);
}
}
}
int main(){
cin>>n>>k;
int i=1;
for(;i<=n;i++){
cin>>w[i];
if(w[i]>k){
i--;
break;
}
}
dfs(i,0);
cout<<ans;
return 0;
}
难道还能优化吗