#include using namespace std; int main(){ ios_base::sync_with_stdio(false); cin.tie(nullptr); int N = 100000,Q = 100000; cin >> N >> Q; string s(N,'w'); cin >> s; vector WA(N); for(int i=0; i> t >> x; long long one = 1,add = 1; for(long long i=0; i x) break; one += add*5,add *= 2; } x--; long long back = 0; int low = -1,high = N-1; while(high-low > 1){ int mid = (high+low)/2; __int128_t now = WA.at(mid); now *= one; now += mid+1-WA.at(mid); if(now <= x) low = mid; else high = mid; } { int pos = high; char c = s.at(pos); if(c == 'w' || c == 'a'){ long long before = WA.at(pos)-1; x -= before*one,x -= pos-before; vector memo(100,1); long long on = 6,ad = 2; for(long long i=1; ; i++){ memo.at(i) = on; on += ad*5,ad *= 2; if(x >= memo.at(i)) continue; auto f = [&](auto f,long long X,char C,long long d) -> void { if(d == 0){cout << C; return;} if(C == 'w'){ for(auto c : "warong"){ if(c == 'w'){ if(X >= memo.at(d-1)) X -= memo.at(d-1); else{f(f,X,c,d-1); return;} } else if(c == 'a'){ if(X >= memo.at(d-1)) X -= memo.at(d-1); else{f(f,X,c,d-1); return;} } else{ if(X == 0){cout << c; return;} X--; } } } else{ for(auto c : "answer"){ if(c == 'w'){ if(X >= memo.at(d-1)) X -= memo.at(d-1); else{f(f,X,c,d-1); return;} } else if(c == 'a'){ if(X >= memo.at(d-1)) X -= memo.at(d-1); else{f(f,X,c,d-1); return;} } else{ if(X == 0){cout << c; return;} X--; } } } }; f(f,x,c,i); break; } } else cout << c; } } cout << endl; }