#include <stdio.h>
#include<iostream>
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;
}