题目描述

Y 同学维护一个只含小写英文字母的字符串 ss。系统会进行两类操作:第一类把某个位置的字符修改为给定字符;第二类给出区间 [l,r][l,r] 和模式串 pp,询问 pp 在子串 slsl+1srs_l s_{l+1}\dots s_r 中出现了多少次。

出现可以重叠。例如 aaaaa 出现两次。所有位置均按 11 下标计数。修改会影响之后的所有询问。

直接对每次询问重新匹配会被大量短模式和长区间卡住。请你按顺序处理全部操作并输出每个询问的答案。

输入格式

第一行包含字符串 ss

第二行包含整数 qq

接下来 qq 行,每行形如 1 i c2 l r p,分别表示修改和询问。

输出格式

对每个询问操作输出一行一个整数。

样例

样例输入 #1

ababa
4
2 1 5 aba
1 3 c
2 1 5 aba
2 2 5 ba

样例输出 #1

2
0
1

数据范围与约定

对于 100%100\% 的数据,保证 1s,q1051\le |s|,q\le10^5,所有询问模式串非空,所有询问模式串总长度不超过 10510^5

测试点编号 分值 范围 特殊性质
141\sim4 1616 $ s
585\sim8
9129\sim12 1818
131613\sim16 2020
172217\sim22 3030

特殊性质 A:保证没有修改操作。 特殊性质 B:保证所有模式串长度为 11