record
#include<bits/stdc++.h>
#define int long long
using namespace std;
int n,c,w[1005],ans;
bool vis[1005];
void dfs(int x){
if(x>c) return;
for(int i=1;i<=n;i++){
if(!vis[i]){
vis[i]=true;
if(x+w[i]>c){ans=max(ans,x);return;}
dfs(x+w[i]);
vis[i]=false;
}
}
}
signed main(){
cin>>n>>c;
for(int i=1;i<=n;i++)cin>>w[i];
dfs(0);
cout<<ans;
return 0;
}