WATCH


Submit solution

Points: 100
Time limit: 1.0s
Memory limit: 493M

Problem type

CP đang trên đường trở về nhà thì anh ta nhìn thấy một cái gì đó lấp lánh. Thì ra là một cái đồng hồ, anh ta cầm ngay nó đến cửa tiệm để bán lấy tiền. Trên mỗi đồng hồ chứa đựng một số serial là một xâu các kí tự gồm các số từ 0 đến 9. và đồng hồ sẽ có giá trị cao hơn nếu số seria thỏa mãn điều kiện kiểm tra của chủ hàng. Chủ cửa hàng sẽ có quy tắc kiểm tra như sau: mỗi lần kiểm tra sẽ gồm 3 số nguyên l, r and d. Kiểm tra xem đoạn xâu con từ l đến r của serial có phải là một đoạn có chu kì là d hay không.

1 xâu S có chu kì là x nếu (1 ≤ x ≤ length(s), if s[i]  =  s[i + x] for all i from 1 to |s|  -  x.

Chủ cửa hàng thi thoảng không để ý nên CP đã sửa một đoạn các kí tự của xâu serial ban đầu thành một đoạn các kí tự c giống nhau, nhằm tăng thêm giá trị của đồng hồ. Bạn hãy viết một chương trình kiểm tra cho chủ cửa hàng.

Input

  • Dòng 1 chứa ba số nguyên n, m và k (1 ≤ n ≤ 10^5, 1 ≤ m + k ≤ 10^5) — độ dài của xâu serial, số lần thay đổi serial của CP và số lần kiểm tra của chủ cửa hàng

  • Dòng thứ hai chứa xâu Serial

  • m + k dòng tiếp theo mỗi dòng chứa 1 trong hai thao tác thay đổi của CP hoặc kiểm tra của chủ cửa hàng. Nếu là thao tác thay đổi thì có dạng 1 l r c (1 ≤ l ≤ r ≤ n, 0 ≤ c ≤ 9). Có nghĩa là CP thay đổi tất cả các kí tự từ vị trí l đến vị trí r thành kí tự c. Nếu là thao tác kiểm tra thì có dạng 2 l r d (1 ≤ l ≤ r ≤ n, 1 ≤ d ≤ r - l + 1).

Output

Với mỗi thao tác kiểm tra in ra YES hoặc NO

Sample Input

3 1 2
112
2 2 3 1
1 1 3 8
2 1 2 1

Sample Output

NO
YES

Comments

There are no comments at the moment.