#include<bits/stdc++.h>
using namespace std;
const int maxn=2e7;
const long long nnnnn=2e18;
char c;
long long m,d,x,Max=-nnnnn,flag,t=0,top=0,tail=0,answ;
long long num[maxn],ans[maxn];
int main() {
scanf("%lld%lld",&m,&d);
for(int i=1;i<=m;i++){
cin>>c>>x;
if(c=='A'){
x+=t;
x%=d;
top++;
if(x>Max) {
num[top]=x;
Max=x;
tail=top;
ans[top]=Max;
}
else if(x>num[top]&&x<Max) {
num[top]=x;
flag=top;
while(ans[flag]<=x) {
ans[flag]=x;
flag--;
}
}
else if(x<Max&&x<ans[top]) {
ans[top]=x;
num[top]=x;
}
}
else if(c=='Q'){
long long place=top-x+1;
if(place<=tail) {
answ=ans[tail];
}
else {
answ=ans[place];
}
cout<<answ<<endl;
t=answ;
}
}
return 0;
}
90分,暴力。
有没有同志能够帮忙看一下为什么最后一个点过不了: )