Language
Upon arriving in Antarctica, Skipper, Rico, Private, and Kowalski discovered that they couldn't understand what the local penguins were saying. Skipper tasked Private, being the smartest, with figuring out the locals' language to receive timely information from them.
Private decided to record all the phrases he heard from the locals as one long sequence of sounds, denoting the sounds with lowercase Latin letters. Thus, he obtained a string **s** consisting of **n** lowercase Latin letters. After that, Private began analyzing this string: changing characters, rearranging substrings from one place to another, comparing substrings with each other... At some point, Private got completely confused and asked for your help. All the operations performed on the string were carefully recorded by Private on a sheet of paper, resulting in a list of **m** entries of the following type:
- **S i c** — Private replaced the letter at the **i**-th position of the string with the letter **c**.
- **M i j k** — Private cut out the substring of the original string from position **i** to **j** and moved it after the character at position **k**. Here, the number **k** specifies the position of the character in the string after the substring **s[i..j]** has been removed. If **k = 0**, it means the cut-out substring should be placed at the beginning of the resulting string.
- **C i j l** — Private compared the substrings **s[i..i+l-1]** and **s[j..j+l-1]**.
- **P** — Private copied the string obtained at that moment onto the results sheet.
Unfortunately, Private lost the results sheet, and without it, understanding the locals' language will be impossible. Help him restore the results of the operations performed.
**Input**
The first line of the input file contains two numbers **n** and **m** — the length of the string recorded by Private and the number of operations he performed on it, respectively (1 ≤ **n**, **m** ≤ 10^5). The second line contains **n** lowercase Latin letters — the original string recorded by Private. The next **m** lines contain descriptions of Private's actions in the format specified above. It is guaranteed that all indices are within the permissible range, with **i** ≤ **j** when specifying a substring.
Characters in the string are numbered from **1** to **n**, and the character at the **i**-th position is denoted as **s[i]**. Recall that the substring **s[i..j]** of the string **s** is the string composed of the characters **s[i]**, **s[i+1]**, ..., **s[j]**.
**Output**
Output one line for each comparison or copying operation. For each comparison operation performed by Private, output "+" if the compared substrings were equal, and "-" otherwise. For each copying operation, output the current state of the string at the moment of this operation. It is guaranteed that the total volume of output data (excluding line breaks) will not exceed one megabyte.