#include <stdio.h>
#include <bits/stdc++.h>
using namespace std;

int i, j, n, q, op, x, y, arb[400005], lazy[400005], rsval, rsx, rsy, poz, st, dr, pivot, sum;

void update(int left, int right, int nod) {
  if(lazy[nod]) {
    if(left != right) {
      lazy[2 * nod] ^= 1;
      lazy[2 * nod + 1] ^= 1;
    }
    arb[nod] = (right - left + 1) - arb[nod];
    lazy[nod] = 0;
  }

  if(left > right || left > y || right < x || x > y) return ;

  if(x <= left && y >= right) {
    arb[nod] = (right - left + 1) - arb[nod];
    if(left != right) {
      lazy[2 * nod] ^= 1;
      lazy[2 * nod + 1] ^= 1;
    }

    return;
  }

  int pivot = (left + right) / 2;

  update(left, pivot, 2 * nod);
  update(pivot + 1, right, 2 * nod + 1);

  arb[nod] = arb[2 * nod] + arb[2 * nod + 1];
}

int query(int left, int right, int nod) {
  if(lazy[nod]) {
    if(left != right) {
      lazy[2 * nod] ^= 1;
      lazy[2 * nod + 1] ^= 1;
    }
    arb[nod] = (right - left + 1) - arb[nod];
    lazy[nod] = 0;
  }

  if(x > y) return 0;
  if(x <= left && right <= y) return arb[nod];

  int pivot = (left + right) / 2;
  int gmb = 0, fnc = 0;

  if(x <= pivot) gmb = query(left, pivot, 2 * nod);
  if(y > pivot) fnc = query(pivot + 1, right, 2 * nod + 1);

  return gmb + fnc;
}

int main() {
  for(scanf("%d%d", &n, &q); q; --q) {
    scanf("%d", &op);

    if(op == 1) {
      scanf("%d%d", &x, &y);
      update(1, n, 1);
      continue;
    }

    if(op == 2) {
      scanf("%d", &poz);
      x = y = poz; rsval = query(1, n, 1);

      st = 1; dr = poz - 1; rsx = poz;
      /*while(st <= dr) {
        pivot = (st + dr) / 2;
        x = pivot; y = poz;
        sum = query(1, n, 1);
        if(!rsval) sum = (y - x + 1) - sum;
        if(sum == y - x + 1) rsx = pivot, dr = pivot - 1;
        else st = pivot + 1;
      } */

      st = poz + 1; dr = n; rsy = poz;
/*      while(st <= dr) {
        pivot = (st + dr) / 2;
        x = poz; y = pivot;
        sum = query(1, n, 1);
        if(!rsval) sum = (y - x + 1) - sum;
        if(sum == y - x + 1) rsy = pivot, st = pivot + 1;
        else dr = pivot - 1;
      }*/

      printf("%d %d %d\n", rsval, rsx, rsy);
    }
  }

  return 0;
}