#include #include using namespace std; int arb[7][400101],n,m,stg,drt,poz,k; void update (int nod) { if(arb[5][nod]==0) return; arb[5][nod]=0; swap(arb[1][nod*2],arb[3][nod*2]); swap(arb[2][nod*2],arb[4][nod*2]); swap(arb[1][nod*2+1],arb[3][nod*2+1]); swap(arb[2][nod*2+1],arb[4][nod*2+1]); if(arb[6][nod*2]==0) arb[6][nod*2]=1; else arb[6][nod*2]=0; if(arb[6][nod*2+1]==0) arb[6][nod*2+1]=1; else arb[6][nod*2+1]=0; arb[5][nod*2]++; if(arb[5][nod*2]%2==0) arb[5][nod*2]=0; else arb[5][nod*2]=1; arb[5][nod*2+1]++; if(arb[5][nod*2+1]%2==0) arb[5][nod*2+1]=0; else arb[5][nod*2+1]=1; } void up_date (int st,int dr,int nod) { if(stg<=st && dr<=drt) { swap(arb[1][nod],arb[3][nod]); swap(arb[2][nod],arb[4][nod]); arb[5][nod]++; if(arb[5][nod]%2==0) arb[5][nod]=0; else arb[5][nod]=1; if(arb[6][nod]==0) arb[6][nod]=1; else arb[6][nod]=0; } else { update(nod); int mij=(st+dr)/2; if(stg<=mij) up_date(st,mij,nod*2); if(drt>mij) up_date(mij+1,dr,nod*2+1); arb[1][nod]=arb[1][nod*2]; if(arb[1][nod]==mij-st+1) arb[1][nod]+=arb[1][nod*2+1]; arb[3][nod]=arb[3][nod*2]; if(arb[3][nod]==mij-st+1) arb[3][nod]+=arb[3][nod*2+1]; arb[2][nod]=arb[2][nod*2+1]; if(arb[2][nod]==dr-mij) arb[2][nod]+=arb[2][nod*2]; arb[4][nod]=arb[4][nod*2+1]; if(arb[4][nod]==dr-mij) arb[4][nod]+=arb[4][nod*2]; } } void ask_me (int st,int dr,int nod) { if(poz==st && dr==st) { stg=drt=poz; k=arb[6][nod]; } else { update(nod); int mij=(st+dr)/2; if(poz<=mij) { ask_me(st,mij,nod*2); if(drt==mij) { if(k==1) drt+=arb[3][nod*2+1]; else drt+=arb[1][nod*2+1]; } } else { ask_me(mij+1,dr,nod*2+1); if(stg==mij+1) { if(k==1) stg-=arb[4][nod*2]; else stg-=arb[2][nod*2]; } } } } void make (int st,int dr,int nod) { if(st==dr) { arb[1][nod]=arb[2][nod]=1; } else { int mij=(st+dr)/2; make(st,mij,nod*2); make(mij+1,dr,nod*2+1); arb[1][nod]=arb[2][nod]=dr-st+1; } } void read () { int p; cin>>n>>m; make(1,n,1); for(int i=1;i<=m;i++) { cin>>p; if(p==1) scanf("%d%d",&stg,&drt),up_date(1,n,1); else scanf("%d",&poz),ask_me(1,n,1),printf("%d %d %d\n",k,stg,drt); } } int main() { read(); return 0; }