#include<bits/stdc++.h>
#define lid (id<<1)
#define rid (id<<1|1)
#define int long long
using namespace std;
const int maxn = 200005;
int n,t,line,m,p,tr[maxn*4];
char op;
void add(int id,int v,int k,int l,int r){
if(l==r){
tr[id]=k;
return;
}
int mid=(l+r)>>1;
if(v<=mid)return add(lid,v,k,l,mid);
else return add(rid,v,k,mid+1,r);
tr[id]=max(tr[lid],tr[rid])%p;
}
int query(int id,int l1,int r1,int l2,int r2){
if(l1==l2&&r1==r2) return tr[id];
int mid=(l2+r2)>>1;
if(r1<=mid)return query(lid,l1,r1,l2,mid);
else if(l1>mid) return query(lid,l1,r1,mid+1,r2);
else return max(query(lid,l1,r1,l2,mid),query(lid,l1,r1,mid+1,r2));
}
signed main(){
scanf("%lld%lld",&m,&p);
for(int i=1;i<=m;i++){
scanf("%c",&op);
if(op=='Q'){
scanf("%lld",&n);
if(n==0)t=0;
else t=query(1,line-n+1,line,1,m)%p;
printf("%lld\n",t);
}else{
scanf("%lld",&n);
n+=t,line++;
add(1,line,n%p,1,m);
}
}
return 0;
}