#include #include #include #include #include #include #include #include #include #include #include #include using namespace std; #define mp(first, second) make_pair(first, second) typedef unsigned long long ul; typedef long long ll; typedef pair ii; typedef vector vii; typedef vector vi; int main() { freopen("coins.in", "r", stdin); freopen("coins.out", "w", stdout); ul n, s; cin >> n >> s; vector
    coins; coins.push_back(1); for (int i = 1; i <= n; i++) { int curr; cin >> curr; ul coin = coins[i - 1] * curr; coins.push_back(coin); /*if (coins[i - 1] * curr <= s) idx = i;*/ } ul currSum = 0; ul ans = 0, idx = coins.size() - 1; while (currSum != s) { if (currSum + coins[idx] <= s) { currSum += coins[idx]; ans++; } else { idx--; } } cout << ans << endl; /*while (true) { }*/ return 0; }