#include<bits/stdc++.h>
using namespace std;
int n,m,a[100001],len,b[100001],id[100001],tag[100001];
int main(){
scanf("%d%d",&n,&m);
len=sqrt(n);
for(int i=1;i<=n;i++){
id[i]=(i-1)/len+1;
}
for(int i=1;i<=m;i++){
int op,x,y;
scanf("%d%d%d",&op,&x,&y);
switch(op){
case 0:{
int lid=id[x],rid=id[y];
if(lid==rid){
for(int i=x;i<=y;i++){
if(a[i]) b[id[i]]--;
else b[id[i]]++;
a[i]^=1;
}
}
else{
for(int i=x;id[i]==lid;i++){
if(a[i]) b[id[i]]--;
else b[id[i]]++;
a[i]^=1;
}
for(int i=lid+1;i<rid;i++){
tag[i]^=1;
b[i]=len-b[i];
}
for(int i=y;id[i]==rid;i--){
if(a[i]) b[id[i]]--;
else b[id[i]]++;
a[i]^=1;
}
}
break;
}
case 1:{
int lid=id[x],rid=id[y],ans=0;
if(lid==rid){
for(int i=x;i<=y;i++){
if(a[i]^tag[id[i]]) ans++;
}
}
else{
for(int i=x;id[i]==lid;i++){
if(a[i]^tag[id[i]]) ans++;
}
for(int i=lid+1;i<rid;i++){
ans+=b[i];
}
for(int i=y;id[i]==rid;i--){
if(a[i]^tag[id[i]]) ans++;
}
}
printf("%d\n",ans);
break;
}
}
}
return 0;
}