
#include<bits/stdc++.h>
#define N 1000100
using namespace std;
struct node
{
int l,r;
int data;
}e[4*N];
int n,m,cut;
void build(int xh,int l,int r)
{
e[xh].l=l,e[xh].r=r;
if(l==r)return;
int mid=(l+r)>>1;
build(xh<<1,l,mid),build(xh<<1|1,mid+1,r);
}
void add(int xh,int zb,int data)
{
int l=e[xh].l,r=e[xh].r;
if(l==r)e[xh].data=data;
int mid=(l+r)>>1;
if(mid<zb)add(xh*2+1,zb,data);
else add(xh*2,zb,data);
}
int ask(int xh,int l,int r)
{
int ll=e[xh].l,rr=e[xh].r;
if(ll>=l&&rr<=r)return e[xh].data;
return max(ask(xh<<1,l,r),ask(xh<<1|1,l,r));
}
int main()
{
cin>>n>>m;
build(1,1,n);
for(int i=1;i<=n;i++)
{
char s;
int x;
cin>>s>>x;
if(s=='A')add(1,++cut,x%m);
else printf("%d\n",ask(1,cut-x+1,cut));
}
return 0;
}