#include using namespace std; using ll = long long; int main() { int N, Q; cin >> N >> Q; string S; cin >> S; vector A(N); for(int i = 0; i < N; ++i) A[i] = S[i] - 'a' + 1; vector B(8, vector(N, 0)); B[0] = A; for(int i = 1; i < 8; ++i) for(int j = 0; j < N - i; ++j) B[i][j] = B[i - 1][j] << 5 | A[j + i]; unordered_map cnt; for(int i = 0; i < 8; ++i) for(int j = 0; j < N; ++j) cnt[B[i][j]] += 1; while(Q--) { int cmd; cin >> cmd; if(cmd == 1) { int k; char c; cin >> k >> c, --k; B[0][k] = A[k] = c - 'a' + 1; for(int i = 1; i < 8; ++i) for(int j = max(0, k - i); j <= k; ++j) if(j + i < N) { cnt[B[i][j]] -= 1; B[i][j] = B[i - 1][j] << 5 | A[j + i]; cnt[B[i][j]] += 1; } } if(cmd == 2) { string T; cin >> T; ll v = 0; for(auto c : T) v = (v << 5) + (c - 'a' + 1); cout << (cnt[v] > 0 ? "Yes" : "No") << "\n"; } } }