#include <iostream> #include <iomanip> #include <cstring> #include <algorithm> #include <math.h> #include <queue> #include <functional> #include <map> #include <vector> #include <string> using namespace std; typedef long long ll; const ll MOD = 1000000007; int n, k; int a[25]; int dfs(int i, int j){ if (i == n) return 0; int ret; ret = dfs(i + 1, j); if (j + a[i] <= k){ ret = max(ret, a[i] + dfs(i + 1, j + a[i])); } return ret; } int main(void){ cin >> n >> k; for (int i = 0; i < n; i++) cin >> a[i]; cout << dfs(0, 0) << endl; }