func_code_string: #include <bits/stdc++.h>   using namespace std;   const int N = 1e5 + 9;   int n, q, c[N];   void modify(int x, int v) {     if (x == 0) return;     for (int i = x; i <= n; i += i & -i) c[i] += v;   }   int query(int x) {     int s = 0;     for (int i = x; i >= 1; i -= i & -i) s += c[i];     return s;   }   void work(int a, int b, bool le) {     for (int i = a; i <= b; ++i) {       int t = query(i) - query(i - 1);       modify(i, -t);       if (le) {         modify(a - (i - a + 1), t);       } else         modify(b + (b - i + 1), t);     }   }   int L, R;   int get(int x) {     if (L <= R)       return x + L - 1;     else       return L + 1 - x;   }   int len() { return abs(L - R) + 1; }   int main() {     scanf( %d%d , &n, &q);     L = 1, R = n;     for (int i = 1; i <= n; ++i) modify(i, 1);     while (q--) {       int cmd, p, l, r;       scanf( %d , &cmd);       if (cmd == 1) {         scanf( %d , &p);         if (L <= R) {           if (p > len() - p) {             work(get(p + 1), R, 1);             R = get(p);             swap(L, R);           } else {             work(get(1), get(p), 0);             L = get(p + 1);           }         } else {           if (p > len() - p) {             work(R, get(p + 1), 0);             R = get(p);             swap(L, R);           } else {             work(get(p), get(1), 1);             L = get(p + 1);           }         }       } else {         scanf( %d%d , &l, &r);         l++;         l = get(l), r = get(r);         if (l > r) swap(l, r);         int s = query(r) - query(l - 1);         printf( %d n , s);       }     }     return 0;   }   