//flipping normals
#include<cstdio>
#include<iostream>
#define M 100009
int maxval;
int BIT[M];
//int BIT2[M];
int up(int idx,int val)
{
// if(BIT[idx]==1)
//val=-val;
//else
//val=val;
while(idx<=maxval)
{
BIT[idx]+=val;
idx+=idx&-idx;
}
}
int query(int idx)
{
int sum=0;
while(idx>0)
{
sum+=BIT[idx];
idx-=idx&-idx;
}
return sum;
}
int main()
{
int n,q;
maxval=n;
while(q--)
{
int a,b,c;
scanf("%d%d%d",&c
,&a
,&b
);
if(c==0)
{
up(a+1,1);
up(b+2,-1);
// up()
}
else
{int i,count=0,z;
for(i=a+1;i<=b+1;i++)
{
z=query(i);
if(z%2!=0)
count++;
}
}
}
}
Ly9mbGlwcGluZyBub3JtYWxzCgojaW5jbHVkZTxjc3RkaW8+CiNpbmNsdWRlPGlvc3RyZWFtPgojZGVmaW5lIE0gMTAwMDA5CgppbnQgbWF4dmFsOwppbnQgQklUW01dOwovL2ludCBCSVQyW01dOwppbnQgdXAoaW50IGlkeCxpbnQgdmFsKQp7Ci8vCWlmKEJJVFtpZHhdPT0xKQoJLy92YWw9LXZhbDsKCS8vZWxzZQoJLy92YWw9dmFsOwoJd2hpbGUoaWR4PD1tYXh2YWwpCgl7CgkJQklUW2lkeF0rPXZhbDsKCQlpZHgrPWlkeCYtaWR4OwoJfQp9CgoKaW50IHF1ZXJ5KGludCBpZHgpCnsKCWludCBzdW09MDsKCXdoaWxlKGlkeD4wKQoJewoJCXN1bSs9QklUW2lkeF07CgkJaWR4LT1pZHgmLWlkeDsKCX0KCXJldHVybiBzdW07Cn0KCmludCBtYWluKCkKewoJaW50IG4scTsKCXNjYW5mKCIlZCVkIiwmbiwmcSk7CgkgIG1heHZhbD1uOwoJd2hpbGUocS0tKQoJewoJCWludCBhLGIsYzsKCQlzY2FuZigiJWQlZCVkIiwmYywmYSwmYik7CgkJCgkJaWYoYz09MCkKCQl7CgkJICAgCXVwKGErMSwxKTsKCQkJdXAoYisyLC0xKTsKCQkvLwl1cCgpCgkJCQoJCX0KCQllbHNlCgkJe2ludCBpLGNvdW50PTAsejsKCQkJZm9yKGk9YSsxO2k8PWIrMTtpKyspCgkJCXsKCQkJCXo9cXVlcnkoaSk7CgkJCQlpZih6JTIhPTApCgkJCQljb3VudCsrOwoJCQl9CgkJCXByaW50ZigiJWRcbiIsY291bnQpOwoJCX0KCX0KfQo=