#include<bits/stdc++.h>
#define int long long
using namespace std;
const int N=1e5+5;
int n,m,len,cnt;
int a[N],id[N],charge[N],sum[N];
inline void update(int l,int r)
{
if(id[l]==id[r])
{
for(int i=l;i<=r;i++)
{
a[i]^=1;
if(a[i])sum[id[i]]++;
else sum[id[i]]--;
}
}
else
{
for(int i=l;i<=r;i++)
{
if(i%len==1&&i+len<=r)
{
sum[id[i]]=len-sum[id[i]];
charge[id[i]]^=1;
i+=len-1;
}
else
{
a[i]^=1;
if(a[i])sum[id[i]]++;
else sum[id[i]]--;
}
}
}
}
inline int query(int l,int r)
{
int total=0;
if(id[l]==id[r])
{
for(int i=l;i<=r;i++)
total+=(a[i]+charge[id[i]])%2;
}
else
{
for(int i=l;i<=r;i++)
{
if(i%len==1&&i+len<=r)
{
total+=sum[id[i]];
i+=len-1;
}
else
{
total+=(a[i]+charge[id[i]])%2;
}
}
}
return total;
}
signed main()
{
scanf("%lld%lld",&n,&m);
len=sqrt(n);
for(int i=1;i<=n;i++)
{
if(i%len==1)cnt++;
id[i]=cnt;
}
while(m--)
{
int c,a,b;
scanf("%lld%lld%lld",&c,&a,&b);
if(c)printf("%lld\n",query(a,b));
else update(a,b);
}
return 0;
}