#include <cstdio>
using namespace std;
typedef long long lld;

lld n,w;
lld work[1002];
bool possible[10003];

lld eabs(lld num)
{
    if (num<0) return num*-1;
    else return num;
}

int main ()
{
    lld i,j,ii,jj,ind,ans=0;

    for (i=0;i<10003;i++)
    {
        possible[i]=false;
    }
    possible[0]=true;

    scanf("%lld %lld",&n,&w);
    for (i=1;i<=n;i++)
    {
        scanf("%lld",&work[i]);
    }

    for (i=1;i<=n;i++)
    {
        for (j=w;j>=0;j--)
        {
            if (work[i]+j>w) continue;

            if (possible[j])
            {
                possible[work[i]+j]=true;
                if (w-ans>w-(work[i]+j))
                {
                    ans=work[i]+j;
                }
            }
        }
    }

    printf("%lld\n",ans);
    return 0;
}
