#include <bits/stdc++.h>
using namespace std;
const long long mod = 1e9 + 7;
const int maxn = 1e5 + 50;
const int inf = 1e8;
int n, q;
int a[maxn];
bool pre;
void update(int x, int y) {
  while (x <= n) a[x] += y, x += x & -x;
}
int sum(int x) {
  int ans = 0;
  while (x) {
    ans += a[x];
    x -= x & -x;
  }
  return ans;
}
int get(int l, int r) {
  if (l > r) swap(l, r);
  return sum(r) - sum(l);
}
int main() {
  cin >> n >> q;
  for (int i = 1; i <= n; i++) update(i, 1);
  int cl = 1, cr = n;
  while (q--) {
    int t, l, r;
    cin >> t;
    if (t == 1) {
      int sz = cr - cl + 1;
      cin >> l;
      if (l > sz / 2) {
        pre = !pre;
        l = sz - l;
      }
      if (pre) {
        for (int j = 0; j < l; j++) {
          update(cr - l - j, get(cr - l + j, cr - l + j + 1));
        }
        cr -= l;
      } else {
        for (int j = 0; j < l; j++) {
          update(cl + l + j, get(cl + l - j - 1, cl + l - j - 2));
        }
        cl += l;
      }
    } else {
      cin >> l >> r;
      l++;
      if (pre) {
        cout << get(cr - r, cr - l + 1) << endl;
      } else {
        cout << get(cl + l - 2, cl + r - 1) << endl;
      }
    }
  }
  return 0;
}
