#abc305g. [abc305_g]Banned Substrings

[abc305_g]Banned Substrings

题目描述

给定一个由非空字符串s1,s2,,sMs_1,s_2,\ldots,s_M组成的集合SS,其中每个字符串的长度至多为66,由字符ab组成。找到长度为NN且由字符ab组成的字符串TT的数量,满足以下条件:

  • 对于任何siSs_i\in STT中不包含sis_i作为连续子串。

由于答案可能非常大,找到结果除以998244353998244353的余数。

约束条件

  • 1N10181\leq N\leq10^{18}
  • 1M1261\leq M\leq126
  • NNMM为整数。
  • sis_i是一个长度至多为66,由字符ab组成的非空字符串。
  • sisj(1i<jM)s_i\neq s_j(1\leq i<j\leq M)

输入和输出

从标准输入中按以下格式输入数据:

NN MM s1s_1 s2s_2 \vdots sMs_M

在单独一行中以998244353998244353为模的余数输出结果。

示例

示例输入1

4 3
aab
bbab
abab

示例输出1

10

长度为44,由字符ab组成的字符串中,有1010个满足不包含aabbbababab作为连续子串的字符串:aaaaabaaabbaabbbbaaababababbbbaabbbabbbb。因此,输出结果为1010

示例输入2

20 1
aa

示例输出2

17711

示例输入3

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

示例输出3

566756841

998244353998244353为模的余数输出结果。