#include <bits/stdc++.h>
using namespace std;
const int maxn = 2111111;
long long c[maxn];
long long a[maxn];
void update(int p, long long v) {
  while (p < maxn) {
    c[p] += v;
    p += p & -p;
  }
}
long long query(int p) {
  long long sum = 0;
  while (p) {
    sum += c[p];
    p ^= p & -p;
  }
  return sum;
}
int main() {
  ios::sync_with_stdio(false);
  int n, q, i, j, op, p, l, r;
  long long ans = 0;
  cin >> n >> q;
  int delta = 0;
  for (i = 1; i <= n; ++i) {
    update(i + delta, 1);
    a[i + delta] = 1;
  }
  bool flag = false;
  int L, R;
  L = 0, R = n;
  for (i = 0; i < q; ++i) {
    cin >> op;
    if (op == 1) {
      cin >> p;
      if (p > n - p) {
        p = n - p;
        flag ^= true;
      }
      if (!flag) {
        L += p;
        l = L;
        r = L + 1;
        n -= p;
        for (j = 0; j < p; ++j) {
          a[r] += a[l];
          update(r, a[l]);
          update(l, -a[l]);
          a[l] = 0;
          --l;
          ++r;
        }
        flag = false;
      } else {
        R -= p;
        n -= p;
        l = R;
        r = R + 1;
        for (j = 0; j < p; ++j) {
          a[l] += a[r];
          update(l, a[r]);
          update(r, -a[r]);
          a[r] = 0;
          --l;
          ++r;
        }
        flag = true;
      }
    } else {
      cin >> l >> r;
      if (!flag) {
        l += L;
        r += L;
      } else {
        l = R - l;
        r = R - r;
        swap(l, r);
      }
      ans = query(r) - query(l);
      cout << ans << endl;
    }
  }
  return 0;
}
