#ABC305G. 禁止子串

禁止子串

禁止子串

题目描述

给你一个由 a 和 b 组成、长度至多为 66 的非空字符串集合 S={s1,s2,,sM}S=\lbrace s_1, s_2, \ldots, s_M \rbrace。 求满足以下条件的由 a 和 b 组成的长度为 NN 的字符串 TT 的数量:

对于任意 siSs_i \in S,TT 都不包含 sis_i 作为连续子串。

由于答案可能非常巨大,请对 998244353998244353 取模后输出。

输入格式

输入按以下格式从标准输入给出:

N M
s_1
s_2
⋮
s_M

输出格式

在一行中输出对 998244353998244353 取模后的答案。

样例

4 3
aab
bbab
abab
10

长度为 44、由 a 和 b 组成且不包含 aab、bbab、abab 作为连续子串的字符串有 1010 个:aaaa、abaa、abba、abbb、baaa、baba、babb、bbaa、bbba、bbbb。因此,应输出 1010

20 1
aa
17711
1000000007 28
bbabba
bbbbaa
aabbab
bbbaba
baaabb
babaab
bbaaba
aabaaa
aaaaaa
aabbaa
bbaaaa
bbaabb
bbabab
aababa
baaaba
ababab
abbaba
aabaab
ababaa
abbbba
baabaa
aabbbb
abbbab
baaaab
baabbb
ababbb
baabba
abaaaa
566756841

998244353998244353 取模后输出答案。

数据范围

  • 1N10181 \le N \le 10^{18}
  • 1M1261 \le M \le 126
  • NNMM 是整数。
  • sis_i 是由 a 和 b 组成、长度至多为 66 的非空字符串。
  • sisjs_i \neq s_j (1i<jM)(1 \le i \lt j \le M)
难度 省选/NOI-
通过率
尝试 0
已通过 0
ID
2964
类型
传统题
Time Limit
2000ms
Memory Limit
1024MiB
上传者
标签