#include #include #include using namespace std; typedef long long ll; int main() { int n = 0,k=0; cin >> n>>k; vector weight(n+5,0); for (int i = 0;i < n;i++) cin>>weight[i]; vector *dp = new vector[n+5]; for (int i = 0;i < n + 5;i++)dp[i].resize(k + 5,0); for (int i = 0; i < n; ++i) { for (int w = 0; w <= k; ++w) { if (w >= weight[i]) dp[i + 1][w] = max(dp[i][w - weight[i]] + weight[i], dp[i][w]); else dp[i + 1][w] = dp[i][w]; } } cout << dp[n][k] << endl; delete[] dp; return 0; }