#include #include using namespace std; using namespace atcoder; using ll = long long; using mint = modint998244353; int main() { int N; ll X; cin >> N >> X; vector A(N); for (auto& a: A) cin >> a; unordered_map dp; dp[X] = 1; for (const auto& a: A) { unordered_map ndp; for (const auto& [_, cnt]: dp) { ndp[a] += cnt; } for (const auto& [key, cnt]: dp) { if (key % a == 0) { ndp[key / a] += cnt; } } swap(dp, ndp); } mint ans = 0; for (const auto& [_, cnt]: dp) { ans += cnt; } cout << ans.val() << '\n'; }