n,q = map(int,input().split()) s = input() lrx = [[int(i)-1 for i in input().split()] for j in range(q)] #sli = np.zeros(n) sli = [0]*(n) for i in range(n): sli[i] = ord(s[i]) for i in range(q): l,r,x = lrx[i][0],lrx[i][1],lrx[i][2] #li = np.copy(sli[l:r+1]) #li = sli[l:r+1] tmp = [0]*26 for j in range(r-l+1): tmp[ord(s[l+j])-ord("a")] += 1 #print(l+j,"lj") cnt = 0 #print(tmp,cnt,x) for j in range(26): cnt += tmp[j] if cnt > x: print(chr(ord("a")+j)) break #tmp = tmp[l:r+1] #print(tmp) #for j in range(r-l+1): # tmp.append(sli[l+j]) #tmp.sort() #tmp = np.sort(tmp) #print(chr(int(tmp[x]))) #print(tmp,x,sli)