#include #include #include #include #include #include #include #include #include #include #include #include #include #include #include #include using namespace std; using ll = long long; using ull = unsigned long long; const ll INF = 1e16; const ll MOD = 1e9 + 7; #define REP(i, n) for(ll i = 0; i < n; i++) #define RREP(i, n) for(ll i = n - 1; i >= 0; i--) #define REP2(i, n, k) for(ll i = 0; i < n; i += k) int main() { int n, k; cin >> n >> k; vector a(n); REP(i, n) { cin >> a[i]; } int ans = 0; REP(i, pow(2, n)) { int sum = 0; REP(j, n) { if (i >> j & 1) { sum += a[j]; } } if (sum <= k) { ans = max(ans, sum); } } cout << ans << endl; }