#include<bits/stdc++.h>
using namespace std;
#define LL long long
#define ls rt<<1
#define rs rt<<1|1
const int N=2e5+10;
const LL INF=(-1<<62);
int cnt=0;
long long a[N],tree[N*4];
LL MAX(LL x,LL y){
if(y<=x) return x;
return y;
}
void insert(int rt,int l,int r,int v,int x){
if(l==r){
tree[rt]=v;
return;
}
int mid=l+r>>1;
if(x<=mid) insert(ls,l,mid,v,x);
else insert(rs,mid+1,r,v,x);
tree[rt]=MAX(tree[ls],tree[rs]);
}
LL query(int rt,int l,int r,int L,int R){
if(L<=l&&r<=R) return tree[rt];
int mid=l+r>>1;
LL res=INF;
if(L<=mid) res=MAX(res,query(ls,l,mid,L,R));
if(R>mid) res=MAX(res,query(rs,mid+1,r,L,R));
return res;
}
int main(){
int m,d,t=0,n;
char op;
cin>>m>>d;
for(int i=1;i<N;i++) tree[i]=INF;
for(int i=1;i<=m;i++){
cin>>op>>n;
if(op=='A'){
cnt++;
insert(1,1,m,(t+n)%d,cnt);
}else{
t=query(1,1,m,cnt-n+1,cnt);
cout<<t<<endl;
}
}
return 0;
}
WA on hack求助