#include <bits/stdc++.h>

using namespace std;

int bag(vector<int> &a, int cap){
    int n = a.size() - 1;
    vector<vector<int> > DP(n+1, vector<int>(cap+1, 0));
    for(int i=1; i<=n; ++i){
        for(int j=1; j<=cap; ++j){
            if(a[i-1] > j){
                DP[i][j] = DP[i-1][j];
            }else{
                DP[i][j] = max(DP[i-1][j], DP[i-1][j-a[i-1]]+a[i-1]);
            }
        }
    }
    return DP[n][cap];
}

int main(){

    int n, t;
    cin>>n>>t;
    vector<int> a(n, 0);
    for(int i=0; i<n; ++i){
        cin>>a[i];
    }
    sort(a.begin(), a.end());
    int max = a[n-1];
    int res = bag(a, t-1);

    cout<<max+res<<endl;

    return 0;
}