#include<bits/stdc++.h>
typedef long long ll;
using namespace std;
int n,m,len,ku[100005],ans[100005];
bool a[100005],tap[100005];
int search(int x,int y)
{
int num=0,i;
for(i=x;i<=min(y,ku[x]*len);i++) num+=(a[i]^tap[ku[x]]);
if(ku[x]!=ku[y]) for(i=(ku[y]-1)*len+1;i<=y;i++) num+=(a[i]^tap[ku[y]]);
for(i=ku[x]+1;i<=ku[y]-1;i++) num+=ans[i];
return num;
}
void change(int x,int y)
{
int i;
for(i=x;i<=min(y,ku[x]*len);i++)
{
ans[ku[x]]-=(a[i]^tap[ku[x]]);
a[i]^=1;
ans[ku[x]]+=(a[i]^tap[ku[x]]);
}
if(ku[x]!=ku[y])
{
for(i=(ku[y]-1)*len+1;i<=y;i++)
{
ans[ku[y]]-=(a[i]^tap[ku[y]]);
a[i]^=1;
ans[ku[x]]+=(a[i]^tap[ku[y]]);
}
}
for(i=ku[x]+1;i<=ku[y]-1;i++)
{
tap[i]^=1;
ans[i]=len-ans[i];
}
}
int main()
{
memset(a,false,sizeof(a));
memset(tap,false,sizeof(tap));
memset(ku,0,sizeof(ku));
memset(ans,0,sizeof(ans));
int i,t,x,y;
scanf("%d%d",&n,&m);
len=sqrt(n);
for(i=1;i<=n;i++) ku[i]=(i-1)/len+1;
for(i=1;i<=m;i++)
{
scanf("%d%d%d",&t,&x,&y);
if(!t) change(x,y);
else printf("%d\n",search(x,y));
}
}