const int N=2e5+5;
int n,m,t;
int i,j,k;
ll c[N];
ll query(int x)
{
ll ans=1<<31;
while(x){
ans=max(ans,c[x]);
x-=lowbit(x);
}
return ans;
}
void add(int x,ll val)
{
val%=m;
while(x<=n){
c[x]=max(c[x],val);
x+=lowbit(x);
}
}
int main()
{
IOS;
while(cin>>n>>m){
int pos=n;
int last;//上一次查询的答案
for(int i=1;i<=n;i++){
char ch;
int x;
cin>>ch>>x;
if(ch=='A') add(pos,x*1ll+last),pos--;
else{
last=query(pos+x);
cout<<last<<endl;
}
}
}
//PAUSE;
}