#include<bits/stdc++.h>
using namespace std;
typedef long long ll;
int op,l,r;
ll a[114514],b[1145];
ll sum[1145],add[1145];
ll n,m;
ll c;
ll lp,rp;
ll ans;
inline void change(int l,int r)
{
//cout<<l<<' '<<r<<endl;
lp=b[l],rp=b[r];
if(lp==rp)
for(int i=l;i<=r;i++)
{
add[i]++;
if(a[i]==1)
{
a[i]=0;
sum[lp]--;
}
else
{
a[i]=1;
sum[lp]++;
}
}
else
{
for(int i=lp+1;i<=rp-1;i++)
{
add[i]++;
sum[i]=rp-1-lp-1+1-sum[i];
}
for(int i=l;b[i]==lp;i++)
{
if(a[i]==1)
{
a[i]=0;
sum[lp]-=1;
}
else
{
a[i]=1;
sum[lp]+=1;
}
}
for(int i=r;b[i]==rp;i--)
{
if(a[i]==1)
{
a[i]=0;sum[rp]--;
}
else
{
a[i]=1;sum[rp]++;
}
}
}
}
inline ll ask(int l,int r)
{
lp=b[l],rp=b[r];
ans=0;
if(lp=rp)
for(int i=l;i<=r;i++)
{
if(add[i]%2==1&&a[i]==0)
ans++;
if(add[i]%2==0&&a[i]==1)
ans++;
}
else
{
for(int i=lp+1;l<=rp-1;i++)
ans+=sum[i];
for(int i=l;b[i]==lp;i++)
{
if(add[i]%2==1&&a[i]==0)
ans++;
if(add[i]%2==0&&a[i]==1)
ans++;
}
for(int i=r;b[i]==rp;i--)
{
if(add[i]%2==1&&a[i]==0)
ans++;
if(add[i]%2==0&&a[i]==1)
ans++;
}
}
return ans;
}
int main()
{
ios::sync_with_stdio(0),cin.tie(0);
cin>>n>>m;
c=sqrtl(n);
for(int i=1;i<=n;i++)
b[i]=(i-1)/c+1;
while(m--)
{
cin>>op>>l>>r;
if(op==0)
change(l,r);
else
cout<<ask(l,r)<<'\n';
}
return 0;
}