#include<bits/stdc++.h>
using namespace std;
int n,m,c,l,r,t;
int L[352],R[352],pos[100002],add[352],sum[352],a[100002],ans;
int read(){
int x=0,f=0;
char c=getchar();
while(c<'0'||c>'9'){
if(c=='-') f=1;
c=getchar();
}
while(c>='0'&&c<='9') x=(x<<3)+(x<<1)+(c^48),c=getchar();
return f?-x:x;
}
inline void out(int a){
if(a>=10)out(a/10);
putchar(a%10+'0');
}
int main(){
n=read(),m=read();
t=sqrt(n);
for(int i=1;i<=t;++i) L[i]=R[i-1]+1,R[i]=i*t;
if(R[t]<n) ++t,L[t]=R[t]+1,R[t]=n;
for(int i=1;i<=t;++i) for(int j=L[i];j<=R[i];++j) pos[j]=i;
while(m--){
c=read(),l=read(),r=read();
if(c){
ans=0;
if(pos[l]==pos[r]) for(int i=l;i<=r;++i) ans+=a[i]^add[pos[i]];
else{
for(int i=l;i<=R[pos[l]];++i) ans+=a[i]^add[pos[i]];
for(int i=pos[l]+1;i<pos[r];++i) ans+=(add[i]?((R[i]-L[i]+1)-sum[i]):sum[i]);
for(int i=L[pos[r]];i<=r;++i) ans+=a[i]^add[pos[i]];
}
out(ans);
printf("\n");
}else{
if(pos[l]==pos[r]) for(int i=l;i<=r;++i) sum[pos[i]]+=(a[i]^1)-a[i],a[i]^=1;
else{
for(int i=l;i<=R[pos[l]];++i) sum[pos[i]]+=(a[i]^1)-a[i],a[i]^=1;
for(int i=pos[l]+1;i<pos[r];++i) add[i]^=1;
for(int i=L[pos[r]];i<=r;++i) sum[pos[i]]+=(a[i]^1)-a[i],a[i]^=1;
}
}
}
return 0;
}