#include #include using namespace std; typedef long long ll; int n; ll S; vector a; ll countSolutions = 0; void dfs(int index, ll sum) { if (sum > S) return; // 制約超えなら終了 if (index == n) { countSolutions++; return; } ll power = 1; while (sum + power <= S) { dfs(index + 1, sum + power); power *= a[index]; } } int main() { cin >> n >> S; a.resize(n); for (int i = 0; i < n; i++) { cin >> a[i]; } dfs(0, 0); cout << countSolutions << endl; return 0; }