ST和TS回文问题
时间限制:C/C++/Rust/Pascal 1秒,其他语言2秒
空间限制:C/C++/Rust/Pascal 256 M,其他语言512 M
64bit IO Format: %lld

题目描述

给定一个长度为n的字符串S,和一个正整数Q\\
现在对字符串S进行Q次操作:\\
1 c 表示在字符串S的末尾添加字符c\\
2 k 表示询问是否存在一个长度为k的字符串T,使得S+TT+S都是回文字符串,这里+表示字符串的拼接。\\
\\
请对每次询问输出Yes或No,表示是否存在对应的字符串T


输入描述:

1行输入两个正整数n,Q(1 \le n,Q \le 10^5)\\
2行输入字符串S,保证字符S_i为小写字母;\\
3行到第Q+2行,每行输入一个操作,保证字符c为小写字母,k满足1 \le k \le 10^{18}

输出描述:

对于每个2操作,输出Yes或No表示字符串T是否存在。
示例1

输入

复制
5 3
abbba
2 5
1 c
2 12

输出

复制
Yes
No
示例2

输入

复制
5 1
abcba
2 1000000000000000000

输出

复制
Yes

备注:

注意输出大小写。