#Lutece2478. Little Horse's Problem

Little Horse's Problem

Migrated from Lutece 2478 Little Horse's Problem

All parts of this problem, including description, images, samples, data and checker, might be broken. If you find bugs in this problem, please contact the admins.

Description

Little Horse loves making problems. This day, Little Horse meets Little Rabbit. He immediately makes a problem for Little Rabbit.

Given a string ss of length nn. There are two kinds of operations.

  1. 1 l1 r1 l2 r21 \ l_1 \ r_1 \ l_2 \ r_2: query whether the substring sl1sl1+1sr1s_{l_1}s_{l_1+1}\ldots s_{r_1} and sl2sl2+1sr2s_{l_2}s_{l_2+1}\ldots s_{r_2} are the same.
  2. 2 l r k2 \ l \ r \ k: right circular shift the substring slsl+1srs_{l}s_{l+1}\dots s_{r} by kk positions.

If you right circular shift s1s2sms_1s_2\cdots s_m by 11 position, you will get sms1s2sm1s_ms_1s_2\cdots s_{m-1}. To right circular shift by kk positions means to repeat such operation kk times.

Now, Little Horse has mm operations. He wants Little Rabbit to tell him the result. Little Rabbit is not clever enough to answer this problem. Can you help him?

Input

The first line contains two integers nn and mm (1n,m2×1051 \le n,m \le 2\times10^5) — the length of ss and the number of operations.

The second line contains a string ss, which consists of only lowercase letters.

In the next mm lines, each line contains an operation. The format is in the description ($1 \le l_1 \le r_1 \le n, 1 \le l_2 \le r_2 \le n, 1 \le l \le r \le n,1 \le k \le 2\times10^5$).

Output

For each operation 11, output Yes or No in a line.

Samples

6 4
aabbab
2 1 6 1
1 1 2 5 6
2 1 6 2
1 1 2 5 6
Yes
No

Constraints

1n,m2×1051 \le n,m \le 2\times10^5 $1 \le l_1 \le r_1 \le n, 1 \le l_2 \le r_2 \le n, 1 \le l \le r \le n,1 \le k \le 2\times10^5$

Note

aabbab

  1. 2 1 6 12 \ 1 \ 6 \ 1: right circular shift the substring s1s2s6s_{1}s_{2}\dots s_{6} by 11 positions. baabba
  2. 1 1 2 5 61 \ 1 \ 2 \ 5 \ 6: query whether the substring s1s2s_1s_2 and s5s6s_5s_6 are the same. Yes
  3. 2 1 6 12 \ 1 \ 6 \ 1: right circular shift the substring s1s2s6s_{1}s_{2}\dots s_{6} by 11 positions. babaab
  4. 1 1 2 5 61 \ 1 \ 2 \ 5 \ 6: query whether the substring s1s2s_1s_2 and s5s6s_5s_6 are the same. No

Resources

Macaron_lin