AT_abc349_f [ABC349F] Subsequence LCM

Description

[problemUrl]: https://atcoder.jp/contests/abc349/tasks/abc349_f 長さ $ N $ の正整数列 $ A=(A_1,A_2,\dots,A_N) $ と正整数 $ M $ が与えられます。$ A $ の空でない連続とは限らない部分列であって、列に含まれる要素の最小公倍数が $ M $ になるようなものの個数を $ 998244353 $ で割った余りを求めてください。ただし、$ 2 $ つの部分列が列として同じでも、取り出す位置が異なるならば区別するものとします。また、列の要素の個数が $ 1 $ のときはその要素自身を最小公倍数とします。

Input Format

入力は以下の形式で標準入力から与えられる。 > $ N $ $ M $ $ A_1 $ $ A_2 $ $ \ldots $ $ A_N $

Output Format

答えを出力せよ。

Explanation/Hint

### 制約 - $ 1\leq\ N\leq\ 2\times\ 10^5 $ - $ 1\leq\ M\leq\ 10^{16} $ - $ 1\leq\ A_i\leq\ 10^{16} $ - 入力は全て整数 ### Sample Explanation 1 $ A $ の部分列であって,列に含まれる要素の最小公倍数が $ 6 $ となるものは $ (2,3),(2,3,6),(2,6),(3,6),(6) $ の $ 5 $ つです。 ### Sample Explanation 2 部分列が列として同じでも、取り出す位置が異なるならば区別することに注意してください。