/*
ZADATAK: Atomi
JEZIK: C++
*/

#include<stdio.h>
int main()
{
    FILE *f;
    f=fopen("atomi.in","r");
    FILE *fo;
    fo=fopen("atomi.out","w");
    int n,m,i,j,pom,pom2,a,b,max=0,tren=0;
    fscanf(f,"%d",&n);
    bool traka[n+1];
    for(i=1;i<=n;i++)
    {
                     traka[i]=false;
    }
    fscanf(f,"%d",&m);
    for(j=1;j<=m;j++)
    {
                     max=0;
                    fscanf(f,"%d",&pom);
                    if(pom==0)
                    {
                              fscanf(f,"%d",&pom2);
                              traka[pom2]=false;
                    }
                    else if(pom==1)
                    {
                         fscanf(f,"%d",&pom2);
                         traka[pom2]=true;
                    }
                    else if(pom==2)
                    {
                         fscanf(f,"%d",&a);
                         fscanf(f,"%d",&b);
                         for(i=a;i<=b;i++)
                         {
                                          if(traka[i])
                                          {
                                          tren++;
                                          }
                                          else
                                          {
                                          if(tren>max)
                                          {
                                          max=tren;
                                          }
                                          tren=0;
                                          }
                                          if(tren>max)
                                          max=tren;
                         }
                         fprintf(fo,"%d\n",max);
                    }
    }
    return 0;
}
