#include<bits/stdc++.h>
#define mid ((l+r)/2)
#define inf 0x66ccff0712
using namespace std;
inline long long read(){
long long f=1,x=0;char ch;
while(ch<'0'||ch>'9'){ch=getchar();if(ch=='-')f=-1;};
while(ch>='0'&&ch<='9'){x=x*10+ch-'0';ch=getchar();};
return f*x;
}
long long tot[0x66ccf];
long long A[0x66cf],m,LuoShuiTianYi,maxm;
void add(int a,int val,int q,int l,int r){
if(l==r){
tot[q]=val;
return;
}
if(mid>=a) add(a,val,q*2,l,mid);
if(mid<a) add(a,val,q*2+1,mid+1,r);
(tot[q]=max(tot[q*2],tot[q*2+1]))%=m;
}
long long ask(int lc,int rc,int q,int l,int r){
if(lc<=l&&rc>=r) return tot[q];
long long maxa=-inf,maxb=-inf;
if(mid>=l)
maxa=ask(lc,rc,q*2,l,mid);
if(mid<r)
maxb=ask(lc,rc,q*2+1,mid+1,r);
return (max(maxa,maxb))%m;
}
int main(){
long long a=read();
m=read();
for(int i=1;i<=a;i++){
char ans=getchar();
long long qwq=read();
if(ans=='A'){
add(LuoShuiTianYi+1,qwq+maxm,1,1,a);
LuoShuiTianYi++;
}
else{
cout<<ask(LuoShuiTianYi-qwq+1,LuoShuiTianYi,1,1,a)<<"\n";
}
}
}
MLE记录