5967: Problem g

Memory Limit:512 MB Time Limit:1.000 S
Judge Style:Text Compare Creator:
Submit:44 Solved:31

Description

在小Z还在调整逻辑回归的参数时,团队中的其他成员发现了重要的东西。他们发现,病毒RNA序列上有部分内容和某种病毒是相似的。他们想要找到这些相似的片段。

具体地讲,我们现在有k份片段,每份片段均由A,G,C,U这四种字母组成。如果一段信息与这k份片段相似,那么我们一定能找到某些位置,使这k份片段与这些位置一一匹配且顺序一样没有重叠的部分

比如说,k=2,片段分别为AG,CU,那么它和[AG][CU]是匹配的,和[AG]AG[CU]是匹配的(即使中间的AG没有被匹配到),和GG[AG]UU[CU]也是匹配的。同样,它和CUAG不匹配(因为AG在CU后面),和ACUG不匹配(A和G分开了),和AGC不匹配(最后少了一个U)。

现在,小组成员得到了一份长度为n的RNA序列,他们会将其中所有子串(下面的样例能帮助你理解)拿出来对k份片段进行匹配。他们想知道,有多少个不同的子串(起始位置不同就算不同)能够被匹配。

Input

第一行连个整数n,k,表示序列的长度,片段的个数。

接下来一行,一个长度为n的字符串表示RNA序列。

接下来k行,每行先输入一个整数x,表示这份片段的长度,再输入一个字符串表示这份片段。

Sample Input Copy

【样例1输入】
4 2
AGCU
2 AG
2 CU
【样例2输入】
5 2
AAAAA
2 AA
2 AA
【样例3输入】
10 1
AAAAACCCCC
1 A

Sample Output Copy

【样例1输出】
1
【样例2输出】
3
【样例3输出】
40

HINT

【样例1解释】

AGCU有如下子串:A、G、C、U、AG、GC、CU、AGC、GCU、AGCU,可知只有AGCU是匹配的。

【样例2解释】

可能的子串为AAAA(1~4)、AAAA(2~5)、AAAAA(1~5)。

【数据范围】

对于30%的数据,k=1。

对于另外20%的数据,k=2,片段只由单个字符构成。

对于另外20%的数据,k=2。

对于100%的数据,n<=300,k<=4,片段长度<=3。