Language#2739

Language

1 second
256 megabytes
Very hard

Upon arriving in Antarctica, Skipper, Rico, Private, and Kowalski discovered that they could not understand what the local penguins were saying. Skipper tasked Private, being the smartest, with figuring out the locals' language to receive operational information from them.

Private recorded all the phrases he heard from the locals as a single long sequence of sounds, using lowercase Latin letters. Thus, he obtained a string consisting of lowercase Latin letters. Then Private began to analyze this string: he changed characters, rearranged substrings from one place to another, compared substrings with each other... At some point, Private got completely confused and asked for your help. Private carefully recorded all the operations performed on the string on a sheet of paper, resulting in a list of entries of the following types:

Unfortunately, Private lost the result 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 input contains two numbers and — the length of the string recorded by Private and the number of operations performed on it, respectively (1 \le n,\ m \le 10^5). The second line contains lowercase Latin letters — the original string recorded by Private. The next lines contain descriptions of Private's actions in the format given above. All indices are guaranteed to be within the permissible range, and when specifying a substring, i \le j.

Characters in the string are numbered from to , and the character at the -th position is denoted as . Recall that the substring of the string is the string composed of the characters , s[i+1], ..., .

Output

Output one line for each comparison or copying operation. For each comparison operation carried out by Private, output if the compared substrings were equal, and otherwise. For each copying operation, output the current state of the string at that moment. It is guaranteed that the total size of the output data (excluding line breaks) will not exceed one megabyte.

Examples

Example 1

Loading
Loading