配点 : 600 点
問題文
正整数 N,M および正整数列 D=(D1,…,DN) が与えられます。
以下の条件を満たす正整数列 A=(A1,…,AN) の総数を 998244353 で割った余りを求めてください。
- 1≤Ai≤M(1≤i≤N)
- Ai=Aj(1≤i<j≤N)
- 各 i(1≤i≤N) について、Ai は Di の倍数
制約
- 2≤N≤16
- 1≤M≤1018
- 1≤Di≤M(1≤i≤N)
- 入力は全て整数である。
入力
入力は以下の形式で標準入力から与えられる。
N M
D1 … DN
出力
答えを出力せよ。
3 7
2 3 4
3
条件を満たす A は (2,3,4),(2,6,4),(6,3,4) の 3 通りです。
3 3
1 2 2
0
条件を満たす A は存在しません。
6 1000000000000000000
380214083 420492929 929717250 666796775 209977152 770361643
325683519
998244353 で割った余りを求めることに注意してください。