#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll N=5e4;
ll n,m,a[N];
void add(ll x,ll d){
for(int i=x;i<=n;i+=(-i)&i){
a[i]+=d;
}
}
ll q(ll x){
ll ans=0;
for(int i=x;i;i-=(-i)&i){
ans+=a[i];
}
return ans;
}
stack<ll>s;
int main(){
ios::sync_with_stdio(false);cin.tie(0);
cin>>n>>m;
for(int i=1;i<=n;i++){
add(i,1);
}
while(m--){
char ch;
ll x;
cin>>ch;
if(ch=='D'){
cin>>x;
add(x,-1);
s.push(x);
}
else if(ch=='R'){
x=s.top();
add(x,1);
s.pop();
}
else if(ch=='Q'){
cin>>x;
if(q(x)-q(x-1)==0){
cout<<0<<"\n";
continue;
}
ll l=1,r=x,ans=0,ans2=0;
while(l<=r){
ll mid=(r+l)/2;
if(q(x)-q(mid-1)==x-mid+1){
r=mid-1;
ans=mid;
}
else l=mid+1;
}
l=x;r=n;
while(l<=r){
ll mid=(l+r)/2;
if(q(mid)-q(x-1)==mid-x+1){
l=mid+1;ans2=mid;
}
else r=mid-1;
}
cout<<ans2-ans+1<<"\n";
}
}
return 0;
}#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
const ll N=5e4;
ll n,m,a[N];
void add(ll x,ll d){
for(int i=x;i<=n;i+=(-i)&i){
a[i]+=d;
}
}
ll q(ll x){
ll ans=0;
for(int i=x;i;i-=(-i)&i){
ans+=a[i];
}
return ans;
}
stack<ll>s;
int main(){
ios::sync_with_stdio(false);cin.tie(0);
cin>>n>>m;
for(int i=1;i<=n;i++){
add(i,1);
}
while(m--){
char ch;
ll x;
cin>>ch;
if(ch=='D'){
cin>>x;
add(x,-1);
s.push(x);
}
else if(ch=='R'){
x=s.top();
add(x,1);
s.pop();
}
else if(ch=='Q'){
cin>>x;
if(q(x)-q(x-1)==0){
cout<<0<<"\n";
continue;
}
ll l=1,r=x,ans=0,ans2=0;
while(l<=r){
ll mid=(r+l)/2;
if(q(x)-q(mid-1)==x-mid+1){
r=mid-1;
ans=mid;
}
else l=mid+1;
}
l=x;r=n;
while(l<=r){
ll mid=(l+r)/2;
if(q(mid)-q(x-1)==mid-x+1){
l=mid+1;ans2=mid;
}
else r=mid-1;
}
cout<<ans2-ans+1<<"\n";
}
}
return 0;
}