import sys def prepare(N, S): # csum_count[i] = [非 'w'/'a' の数, 'w'/'a' の数] の累積 csum_count = [[0, 0] for _ in range(N + 1)] for i in range(N): if S[i] == 'w' or S[i] == 'a': csum_count[i + 1] = [csum_count[i][0], csum_count[i][1] + 1] else: csum_count[i + 1] = [csum_count[i][0] + 1, csum_count[i][1]] return csum_count def solve(N, Q, S, T, X, csum_count): ans = ['?'] * Q for i in range(Q): X[i] -= 1 # 1-indexed → 0-indexed T[i] = min(T[i], 60) # 60以上は不要 # 二分探索 l, r = 0, N + 1 while l + 1 < r: c = (l + r) // 2 if csum_count[c][1] < (X[i] - csum_count[c][0]) // (5 * (1 << T[i]) - 4): l = c elif csum_count[c][0] + csum_count[c][1] * (5 * (1 << T[i]) - 4) <= X[i]: l = c else: r = c if csum_count[l][0] + csum_count[l][1] * (5 * (1 << T[i]) - 4) == X[i]: ans[i] = S[l] else: X[i] -= csum_count[l][0] + csum_count[l][1] * (5 * (1 << T[i]) - 4) target = S cursor = l T[i] -= 1 while X[i] != 0 and T[i] >= 0: if target[cursor] == 'a': target = "answer" elif target[cursor] == 'w': target = "warong" else: break # 異常終了 cursor = 0 while X[i] != 0: if target[cursor] != 'w' and target[cursor] != 'a': X[i] -= 1 elif X[i] < 5 * (1 << T[i]) - 4: break else: X[i] -= 5 * (1 << T[i]) - 4 cursor += 1 T[i] -= 1 ans[i] = target[cursor] return ''.join(ans) def main(): input = sys.stdin.readline N, Q = map(int, input().split()) S = input() T = [] X = [] for _ in range(Q): t, x = map(int, input().split()) T.append(t) X.append(x) print(solve(N, Q, S, T, X, prepare(N, S))) if __name__ == "__main__": main()