#include <bits/stdc++.h>
#define int long long
using namespace std;
const int N = 1e6+23;
int n,m,ans,last,len;
int a[N],t[N << 2];
void pushup(int cur){
t[cur] = max(t[cur<<1],t[cur<<1|1]);
return ;
}
void update(int cur ,int l, int r, int pos, int val){
if (l == r && l == pos){
t[cur] = val;
return ;
}
int mid = l + r >> 1;
if (pos <= mid) update(cur<<1,l,mid,pos,val);
else update(cur<<1|1,mid+1,r,pos,val);
pushup(cur);
}
void query(int cur ,int l, int r, int ql, int qr){
if (l == r){
ans = max(ans,t[cur]);
return;
}
int mid = l + r >> 1;
if (ql <= mid) query(cur<<1,l,mid,ql,qr);
if (qr > mid) query(cur<<1|1,mid+1,r,ql,qr);
}
signed main(){
cin >> n >> m;
for (int i = 1; i <= n; i++){
char op;
int k;
cin >> op >> k;
if (op == 'Q'){
int l = len-k+1,r=len;
ans = 0;
query(1,1,n,l,r);
last = ans;
cout << ans << '\n';
}
if (op == 'A'){
k += last;
k %= m;
a[++len] = k;
update(1,1,n,len,k);
}
}
return 0;
}