#include<bits/stdc++.h>
using namespace std;
struct AA
{
int l,r,mx;
}t[80000005];
int n,mod;
void build(int l,int r,int i)
{
t[i].l=l;
t[i].r=r;
if(l==r)
{
return;
}
int mid=l+r>>1;
build(l,mid,i*2);
build(mid+1,r,i*2+1);
}
int ans=0;
void add(int i,int x,int k)
{
if(t[i].l==t[i].r)
{
t[i].mx=k%mod;
return;
}
int mid=t[i].l+t[i].r>>1;
if(x<=mid)
{
add(i*2,x,k);
}
if(x>mid)
{
add(i*2+1,x,k);
}
t[i].mx=max(t[i*2].mx,t[i*2+1].mx)%mod;
}
int ask(int l,int r,int i)
{
if(t[i].l>=l&&t[i].r<=r)
{
return t[i].mx;
}
int mid=t[i].l+t[i].r>>1;
int ans1=-1e9;
if(l<=mid)ans1=max(ans,ask(l,r,i*2)%mod);
if(r>mid)ans1=max(ans,ask(l,r,i*2+1)%mod);
t[i].mx=max(t[i*2].mx,t[i*2+1].mx)%mod;
return ans1;
}
int cnt=0;
int main()
{
cin>>n>>mod;
build(1,n,1);
for(int i=1;i<=n;i++)
{
char op;
cin>>op;
if(op=='Q')
{
int a;
cin>>a;
ans=ask(cnt-a+1,cnt,1);
cout<<ans<<endl;
}
if(op=='A')
{
int k;
cin>>k;
k=(k+ans)%mod;
++cnt ;
add(1,cnt,k);
}
}
return 0;
}