#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=1e5+5;
int L[N],R[N],pos[N],a[N],ans[N],tag[N],n,m,t;
void cg(int l,int r){
int p=pos[l],q=pos[r];
if(p==q){
for(int i=l;i<=r;i++){
ans[p]-=(a[i]^tag[p]);
a[i]^=1;
ans[p]+=(a[i]^tag[p]);
}
}
else{
for(int i=p+1;i<=q-1;i++){
tag[i]^=1;
ans[i]=(R[i]-L[i])-ans[i];
}
for(int i=l;i<=R[p];i++){
ans[p]-=(a[i]^tag[p]);
a[i]^=1;
ans[p]+=(a[i]^tag[p]);
}
for(int i=L[q];i<=r;i++){
ans[q]-=(a[i]^tag[q]);
a[i]^=1;
ans[q]+=(a[i]^tag[q]);
}
}
}
int ask(int l,int r){
int res=0;
int p=pos[l],q=pos[r];
if(p==q){
for(int i=l;i<=r;i++){
res+=(a[i]^tag[p]);
}
}
else{
for(int i=p+1;i<=q-1;i++)
res+=ans[i];
for(int i=l;i<=R[p];i++)
res+=(a[i]^tag[p]);
for(int i=L[q];i<=r;i++)
res+=(a[i]^tag[q]);
}
return res;
}
signed main(){
cin>>n>>m;
int t=sqrt(n);
for(int i=1;i<=t;i++){
L[i]=(i-1) *sqrt(n)+1;
R[i]=sqrt(n)*i;
}
if(R[t]<n){
t++;
L[t]=R[t-1]+1;
R[t]=n;
}
for(int i=1;i<=t;i++){
for(int j=L[i];j<=R[i];j++){
pos[j]=i;
}
}
for(int i=1;i<=m;i++){
int op;
cin>>op;
if(op==0){
int l,r,d;
cin>>l>>r;
cg(l,r);
}
if(op==1){
int l,r;
cin>>l>>r;
cout<<ask(l,r)<<endl;
}
}
}