x,l,r;m[1<<18][2];long A,B,a,b; f(i,k){ if(m[i][0]==2<>1;m[i<<1|0][1]=0; m[i<<1|1][0]=m[i][0]>>1;m[i<<1|1][1]=0; }else if(m[i][1]==2<>1;m[i<<1|0][0]=0; m[i<<1|1][1]=m[i][1]>>1;m[i<<1|1][0]=0; } } g(i){ m[i][0]=m[i<<1|0][0]+m[i<<1|1][0]; m[i][1]=m[i<<1|0][1]+m[i<<1|1][1]; } main(i,j,k){ for(scanf("%*d%*d");~scanf("%d%d%d",&x,&l,&r);){ if(x--){ for(i=j=1,k=17;k--;){ f(i,k); if(i!=j){ f(j,k); if((l>>k&1)==0){ m[i<<1|1][x]=1<>k&1)==1){ m[j<<1|0][x]=1<>k&1; j=j<<1|r>>k&1; } m[i][x]=1;m[i][!x]=0; m[j][x]=1;m[j][!x]=0; for(;++k<17;){ i>>=1; j>>=1; g(i); if(i!=j)g(j); } }else{ a=b=0; for(i=j=1,k=17;k--;){ f(i,k); if(i!=j){ f(j,k); if((l>>k&1)==0){ a+=m[i<<1|1][0];b+=m[i<<1|1][1]; } if((r>>k&1)==1){ a+=m[j<<1|0][0];b+=m[j<<1|0][1]; } } i=i<<1|l>>k&1; j=j<<1|r>>k&1; } a+=m[i][0];b+=m[i][1]; if(i!=j){ a+=m[j][0];b+=m[j][1]; } if(a>b){ A+=a; }else if(a