#abc305g. G - Banned Substrings

G - Banned Substrings

Score : 550550 points

问题描述

给定一个包含长度最多为6个由字符ab组成的非空字符串集合 S={s1,s2,,sM}S=\lbrace s _ 1,s _ 2,\ldots,s _ M\rbrace。要求找出满足以下条件的长度为 NN 的仅包含字符ab的字符串 TT 的数量:

  • 对于集合 SS 中的所有 sis _ i,字符串 TT 都不含有连续子串 sis _ i

由于答案可能非常大,请计算结果对 998244353998244353 取模后的值。

以上为通义千问 qwen-max 翻译,仅供参考。

Problem Statement

You are given a set S={s1,s2,,sM}S=\lbrace s _ 1,s _ 2,\ldots,s _ M\rbrace of non-empty strings of length at most 66 consisting of a and b. Find the number of strings TT of length NN consisting of a and b that satisfy the following condition:

  • TT does not contain sis _ i as a consecutive substring for any siSs _ i\in S.

Since the answer can be enormous, find it modulo 998244353998244353.

Constraints

  • 1N10181\leq N\leq10^{18}
  • 1M1261\leq M\leq126
  • NN and MM are integers.
  • sis _ i is a non-empty string of length at most 66 consisting of a and b.
  • sisj (1i<jM)s _ i\neq s _ j\ (1\leq i\lt j\leq M)

Input

The input is given from Standard Input in the following format:

NN MM

s1s _ 1

s2s _ 2

\vdots

sMs _ M

Output

Print the answer modulo 998244353998244353 in a single line.

Sample Input 1

4 3
aab
bbab
abab

Sample Output 1

10

There are 1010 strings of length 44 consisting of a and b that do not contain aab, bbab, or abab as consecutive substrings: aaaa, abaa, abba, abbb, baaa, baba, babb, bbaa, bbba, and bbbb. Thus, you should print 1010.

Sample Input 2

20 1
aa

Sample Output 2

17711

Sample Input 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

Sample Output 3

566756841

Print the answer modulo 998244353998244353.

update @ 2024/3/10 08:37:09