NIT的字符串
题号:NC219868
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 512 M,其他语言1024 M
64bit IO Format: %lld

题目描述

NIT 在 n 年前还是普及组选手的时候做过这样一个题目,求一个字符串在另一个字符串中出现了几次,以NIT现在国家队的实力,做这样的题实在是太侮辱他的智商了,于是他思考着加强这道题目。

给定一个长度为 n 的字符串,求这个字符串在满足要求的长度为 m 的小写字符串中的期望出现次数。

输入描述:

输入共 k+2 行

第一行 3 个非负整数表示 n,m,k。

n,m 意义见题目,k 表示限制数。

第二行一个长度为 n 的字符串为给定字符串。

第 3 至第 k+2 行,每行 2 个数 opt,x 和 1 个字符 ch。

若 opt=0,则要求第 x 个字符不为 ch。

若 opt=1,则要求第 x 个字符必须为 ch。

输出描述:

一行一个数表示答案,对 998244353 取模。

示例1

输入

复制
2 3 0
aa

输出

复制
286478409

说明

aa 共出现了 52 次,注意在 aaa 中是算出现了 2 次,总共有 17576 个合法串,故期望为 \frac{1}{338}  
示例2

输入

复制
2 4 1
aa
1 1 a

输出

复制
17720314

备注:

对于100%的数据:
输入的字符均为小写字符。