#include<iostream>
#include<cmath>
using namespace std;
int a[2000],dp[1001][1001];
int main () {
    long long int n,w,i,j,mins=-1,sb=0,br=0;
    cin >> n >> w ;
    for (i=0; i<n; i++) {
        cin >> a[i] ;
        sb+=a[i];
        }
    for (i=0; i<sb; i++) {
        for (j=0; j<n; j++) {
            if (i+1==a[j]) dp[i][j]=1;
            else if ((j!=0)&&(i+1>a[j])) dp[i][j]=max(dp[i-a[j]][j-1],dp[i][j-1]);
            else if (j!=0) dp[i][j]=dp[i][j-1];
            if ((dp[i][j]==1)&&(abs(w-mins)>abs(w-i-1))) mins=i+1;
            else if ((dp[i][j]==1)&&(i>=w-1)) {
                    br=1;
                    break;
                    }
            }
        if (br==1) break;
        }
    cout << mins ;
    cout << endl ;
    //system ("PAUSE");
    return 0;
}
