#include <bits/stdc++.h>
using namespace std;
int n, a[100010];
int la, ra;
void update(int i, int delta) {
  for (; i < n; i = i | (i + 1)) {
    a[i] += delta;
  }
}
int get(int fr, int to) {
  int res = 0;
  for (int i = to; i >= 0; i = (i & (i + 1)) - 1) {
    res += a[i];
  }
  for (int i = fr - 1; i >= 0; i = (i & (i + 1)) - 1) {
    res -= a[i];
  }
  return res;
}
int main(void) {
  int q;
  scanf("%d%d", &n, &q);
  for (int i = 0; i < n; ++i) {
    update(i, 1);
  }
  int la = 0;
  int ra = n;
  for (int i = 0; i < q; ++i) {
    int t;
    scanf("%d", &t);
    if (t == 1) {
      int p, len, mid;
      scanf("%d", &p);
      if (la < ra) {
        len = ra - la;
        mid = la + p;
      } else {
        len = la - ra;
        mid = la - p;
      }
      if (p > len / 2) {
        swap(la, ra);
        p = len - p;
      }
      if (la < ra) {
        for (int i = 0; i < p; ++i) {
          update(mid + i, get(mid - 1 - i, mid - 1 - i));
        }
      } else {
        for (int i = 0; i < p; ++i) {
          update(mid - 1 - i, get(mid + i, mid + i));
        }
      }
      la = mid;
    } else {
      int l, r;
      scanf("%d%d", &l, &r);
      if (la < ra) {
        l += la;
        r += la;
      } else {
        l = la - l;
        r = la - r;
        swap(l, r);
      }
      printf("%d\n", get(l, r - 1));
    }
  }
  return 0;
}
