This task is very simple. Given a string *S* of length *n* and *q* queries each query is on the format *i* *j* *k* which means sort the substring consisting of the characters from *i* to *j* in non-decreasing order if *k* = 1 or in non-increasing order if *k* = 0.

Output the final string after applying the queries.
The first line will contain two integers *n*, *q* (1 ≤ *n* ≤ 10<sup class="upper-index">5</sup>, 0 ≤ *q* ≤ 50 000), the length of the string and the number of queries respectively. 

Next line contains a string *S* itself. It contains only lowercase English letters.

Next *q* lines will contain three integers each *i*, *j*, *k* (1 ≤ *i* ≤ *j* ≤ *n*, <img align="middle" class="tex-formula" src="https://espresso.codeforces.com/187c38b0d200dfc5b5249f93c000f8dee9c1180d.png" style="max-width: 100.0%;max-height: 100.0%;"/>).

s = input().split()
a=input()
a=list(a)
for i in range(int(s[1])):
    p = input().split()
    answer = [0] * 26
    for j in range(int(p[0])-1, int(p[1])):
        answer[ord(a[j])-97] += 1

    if int(p[2]) == 1:
        per = int(p[0]) - 1
        for i in range(26):

            for j in range(int(answer[i])):

                a[per] = chr(i+97)
                per+= 1

    else:
        per = int(p[0]) - 1
        for i in range(25, -1,-1):

            for j in range(int(answer[i])):

                a[per] = chr(i+97)
                per+= 1
print(''.join(a))




