CSES - Palindrome Queries
  • Time limit: 1.00 s
  • Memory limit: 512 MB
You are given a string that consists of $n$ characters between a–z. The positions of the string are indexed $1,2,\dots,n$.

Your task is to process $m$ operations of the following types:
  1. Change the character at position $k$ to $x$
  2. Check if the substring from position $a$ to position $b$ is a palindrome
Input

The first input line has two integers $n$ and $m$: the length of the string and the number of operations.

The next line has a string that consists of $n$ characters.

Finally, there are $m$ lines that describe the operations. Each line is of the form "1 $k$ $x$" or "2 $a$ $b$".

Output

For each operation 2, print YES if the substring is a palindrome and NO otherwise.

Constraints
  • $1 \le n, m \le 2 \cdot 10^5$
  • $1 \le k \le n$
  • $1 \le a \le b \le n$
Example

Input:
7 5
aybabtu
2 3 5
1 3 x
2 3 5
1 5 x
2 3 5


Output:
YES
NO
YES