#include<bits/stdc++.h>
#define ll long long
using namespace std;
struct node
{
ll sum,l,r,mid,add;
}a[400010];
void pushup(ll k)
{
a[k].sum=a[k<<1].sum^a[k<<1|1].sum;
}
void csh(ll k,ll l,ll r)
{
a[k].l=l;
a[k].r=r;
a[k].mid=l+r>>1;
if(l==r)
{
return ;
}
csh(k<<1,l,a[k].mid);
csh(k<<1|1,a[k].mid+1,r);
}
void xo(ll k,ll q)
{
if(a[k].l==a[k].r)
{
a[k].sum^=1;
return;
}
if(a[k].mid>=q)
{
xo(k<<1,q);
}
else
{
xo(k<<1|1,q);
}
pushup(k);
}
ll ans(ll k,ll q)
{
if(a[k].l>=1&&a[k].r<=q)
{
return a[k].sum;
}
ll an=0;
if(a[k].mid>=1)
{
an^=ans(k<<1,q);
}
if(a[k].mid<q)
{
an^=ans(k<<1|1,q);
}
return an;
}
int main()
{
ll n,m;
scanf("%lld%lld",&n,&m);
csh(1,1,n);
while(m--)
{
ll op;
scanf("%lld",&op);
if(op==1)
{
ll l,r;
scanf("%lld%lld",&l,&r);
xo(1,l);
xo(1,r+1);
}
else
{
ll x;
scanf("%lld",&x);
printf("%lld\n",ans(1,x)^1);
}
}
}
感觉没有什么问题,但是就是出问题了。。。。。