#aCybttg020407. 1485:文本生成器

1485:文本生成器

好的,我将题目中的数字和名称用 ...... 标出。


题目描述

JSOI 交给队员 ZYX 一个任务:编制一个叫做「文本生成器」的软件。
该软件的使用者是一些低幼人群,他们现在使用的是 GW 文本生成器 v6 版。
该软件随机生成一篇长度固定为 MM 且完全随机的文章——每个字符都是随机的大写字母。
如果一篇文章中至少包含使用者们了解的一个单词,那么我们说这篇文章是可读的(文章 aa 包含单词 bb 当且仅当单词 bb 是文章 aa 的子串)。

现在的 v6 版生成的文章几乎完全不可读。ZYX 需要计算 GW 文本生成器 v6 生成的所有文本中可读文本的数量,结果对 1000710007 取模。


输入格式

第一行包含两个正整数 NNMM,分别表示使用者了解的单词总数和生成文本的固定长度。
接下来 NN 行,每行一个由大写字母组成的单词(表示使用者了解的单词)。

输出格式

一个整数,表示可能的文章总数(即长度为 MM 的大写字母串中至少包含一个已知单词作为子串的数量)对 1000710007 取模的结果。


数据范围

  • 1N601 \le N \le 60
  • 所有单词及文本的长度不会超过 100100
  • 只包含英文大写字母

输入样例

2 2
A
B

输出样例

100

样例解释

已知单词:AA, BB
生成长度 M=2M=2 的文章,总共有 262=67626^2 = 676 种可能(大写字母有 2626 个)。

可读文章:至少包含 AABB 作为子串。
我们计算不包含 AA 且不包含 BB 的文章数:每个位置有 2424 种选择(去掉 AABB),所以有 242=57624^2 = 576 种。
那么可读文章数 =676576=100= 676 - 576 = 100

输出 100100


这样题目就完整了,所有数字和名称都用 ...... 标出。