#include <bits/stdc++.h>
using namespace std;
#define int long long
//#define endl '\n'
int n;
pair<int,char> getlevel(int u){
int lvl = 1;
int v = n/2;
char last;
while(v != u){
if (v > u) v -= n/(1ll<<(++lvl)), last = 'L';
else v += n/(1ll<<(++lvl)), last = 'R';
}
return {lvl,last};
}
signed main() {
cin.tie(NULL); cout.tie(NULL); ios::sync_with_stdio(0);
int q;cin>>n>>q;
++n;
int mx = log2(n);
while(q--){
int u;cin>>u;
string s;cin>>s;
auto [lvl,pos] = getlevel(u);
for(auto &x:s){
if (x == 'U'){
if (lvl > 1)
u += (n/(1ll<<(lvl))) * (pos == 'L' ? 1 : -1);
}
if (x == 'L'){
if (lvl < mx)
u -= (n/(1ll<<(lvl+1)));
}
if (x == 'R'){
if (lvl < mx)
u += (n/(1ll<<(lvl+1)));
}
lvl = getlevel(u).first;
pos = getlevel(u).second;
}
cout<<u<<endl;
}
return 0;
}
1025D - Recovering BST | 439A - Devu the Singer and Churu the Joker |
1323A - Even Subset Sum Problem | 1095A - Repeating Cipher |
630F - Selection of Personnel | 630K - Indivisibility |
20B - Equation | 600B - Queries about less or equal elements |
1015A - Points in Segments | 1593B - Make it Divisible by 25 |
680C - Bear and Prime 100 | 1300A - Non-zero |
1475E - Advertising Agency | 1345B - Card Constructions |
1077B - Disturbed People | 653A - Bear and Three Balls |
794A - Bank Robbery | 157A - Game Outcome |
3B - Lorry | 1392A - Omkar and Password |
489A - SwapSort | 932A - Palindromic Supersequence |
433A - Kitahara Haruki's Gift | 672A - Summer Camp |
1277A - Happy Birthday Polycarp | 577A - Multiplication Table |
817C - Really Big Numbers | 1355A - Sequence with Digits |
977B - Two-gram | 993A - Two Squares |