#include <iostream>
#include <cstdio>
#include <vector>
#include <cmath>
#include <algorithm>
using namespace std;
int n,w,x,ans,xa[1010];
vector<int>a;
bool t;

int main ()
{
    scanf("%d %d",&n,&w);
    a.push_back(0);
    for (int i=0; i<n; i++) scanf("%d",&xa[i]);
    sort(xa,xa+n);
    for (int i=0; i<n; i++)
    {
        for (int j=a.size()-1; j>=0; j--)
        {
            if (a[j]+xa[i]<=w) a.push_back(a[j]+xa[i]);
            if (fabs(ans-w)>fabs(a[j]+xa[i]-w))ans=a[j]+xa[i];
            if (fabs(ans-w)==fabs(a[j]+xa[i]-w)) ans=min(ans,a[j]+xa[i]);
            if (ans==w) {t=1; break;}
        }
        if (t==1) break;
    }
    printf("%d\n",ans);
    return 0;
}
