#include <bits/stdc++.h>
using namespace std;
struct fenwick {
  int N;
  vector<int> sum;
  void init(int n) {
    N = n + 1;
    sum.assign(N, 0);
  }
  void add(int i, int x) {
    for (i++; i < N; i += i & -i) {
      sum[i] += x;
    }
  }
  int get(int i) {
    int tot = 0;
    for (i++; i > 0; i -= i & -i) {
      tot += sum[i];
    }
    return tot;
  }
  int get(int i, int j) { return get(j) - (i > 0 ? get(i - 1) : 0); }
};
fenwick xs;
int lo, hi;
bool flip;
void init(int n, int x) {
  xs.init(n);
  for (int i = 0; i < n; i++) {
    xs.add(i, x);
  }
  lo = 0;
  hi = n - 1;
}
int len() { return hi - lo + 1; }
int get(int i) {
  i = !flip ? lo + i : hi - i;
  return xs.get(i, i);
}
int get(int i, int j) {
  if (!flip) {
    i += lo;
    j += lo;
  } else {
    i = hi - i;
    j = hi - j;
    swap(i, j);
  }
  return xs.get(i, j);
}
void add(int i, int x) {
  i = !flip ? lo + i : hi - i;
  xs.add(i, x);
}
void drop(int k) {
  if (!flip) {
    lo += k;
  } else {
    hi -= k;
  }
}
void dump() {
  int n = len();
  for (int i = 0; i < n; i++) {
    cerr << get(i) << ' ';
  }
  cerr << endl;
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(nullptr);
  int n, q;
  cin >> n >> q;
  init(n, 1);
  while (q--) {
    int t, i, j;
    cin >> t >> i;
    if (t == 1) {
      if (i > len() / 2) {
        i = len() - i;
        flip = !flip;
      }
      for (int k = 0; i - 1 - k >= 0; k++) {
        add(i + k, get(i - 1 - k));
      }
      drop(i);
    } else {
      cin >> j;
      cout << get(i, j - 1) << '\n';
    }
  }
  return 0;
}
