from collections import defaultdict as dd N, Q = map(int, input().split()) S = input() A = [ord(S[i]) - ord('a') + 1 for i in range(N)] B = [[0] * N for i in range (8)] B[0] = A for i in range(1, 8): for j in range(N - i): B[i][j] = B[i - 1][j] << 5 | A[j + i] cnt = dd(int) for i in range(8): for j in range(N - i): cnt[B[i][j]] += 1 for _ in range(Q): cmd = list(input().split()) if cmd[0] == '1': k = int(cmd[1]) - 1 A[k] = ord(cmd[2]) - ord('a') + 1 cnt[B[0][k]] -= 1 B[0][k] = A[k] cnt[B[0][k]] += 1 for i in range(1, 8): for j in range(max(0, k - i), min(N - i, k + 1)): cnt[B[i][j]] -= 1 B[i][j] = B[i - 1][j] << 5 | A[j + i] cnt[B[i][j]] += 1 if cmd[0] == '2': v = 0 for c in cmd[1]: v = v << 5 | (ord(c) - ord('a') + 1) print("Yes" if cnt[v] else "No")