func_code_string: #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;   }   