求救qaq
#include<bits/stdc++.h>
#define lson o<<1
#define rson o<<1|1
#define nmid long long mid=(nowl+nowr)>>1;
using namespace std;
const long long maxn=2e5+5;
long long t[maxn<<2];
void push_up(long long o){
t[o]=max(t[lson],t[rson]);
}
void update(long long nowl,long long nowr,long long p,long long o,long long val){
if(nowl==nowr){
t[o]=val;
return ;
}
nmid;
if(p<=mid) update(nowl,mid,p,lson,val);
else update(mid+1,nowr,p,rson,val);
push_up(o);
}
long long query(long long nowl,long long nowr,long long l,long long r,int o){
if(l<=nowl&&nowr<=r){
return t[o];
}
nmid;
long long res=-(1<<60);
if(l<=mid) res=max(res,query(nowl,mid,l,r,lson));
if(r>mid) res=max(res,query(mid+1,nowr,l,r,rson));
return res;
}
long long m,D,T=0,tail=0;
int main(){
scanf("%lld%lld",&m,&D);
for(long long i=1;i<=m;++i){
char c='\n';
while(c=='\n'||c==' ') scanf("%c",&c);
long long x;
scanf("%lld",&x);
if(c=='A'){
update(1,m,++tail,1,(x+T)%D);
}
else{
T=query(1,m,tail-x+1,tail,1);
printf("%lld\n",T);
}
}
return 0;
}