func_code_string: #include <bits/stdc++.h>   using namespace std;   template <class T>   inline T gcd(T a, T b) {     if (a < 0) return gcd(-a, b);     if (b < 0) return gcd(a, -b);     return (b == 0) ? a : gcd(b, a % b);   }   template <class T>   inline T lcm(T a, T b) {     if (a < 0) return lcm(-a, b);     if (b < 0) return lcm(a, -b);     return a * (b / gcd(a, b));   }   template <class T>   inline T sqr(T x) {     return x * x;   }   template <class T>   T power(T N, T P) {     return (P == 0) ? 1 : N * power(N, P - 1);   }   long long toInt64(string s) {     long long r = 0;     istringstream sin(s);     sin >> r;     return r;   }   double LOG(long long N, long long B) { return (log10l(N)) / (log10l(B)); }   string itoa(long long a) {     if (a == 0) return  0 ;     string ret;     for (long long i = a; i > 0; i = i / 10) ret.push_back((i % 10) + 48);     reverse(ret.begin(), ret.end());     return ret;   }   vector<string> token(string a, string b) {     const char *q = a.c_str();     while (count(b.begin(), b.end(), *q)) q++;     vector<string> oot;     while (*q) {       const char *e = q;       while (*e && !count(b.begin(), b.end(), *e)) e++;       oot.push_back(string(q, e));       q = e;       while (count(b.begin(), b.end(), *q)) q++;     }     return oot;   }   int isvowel(char s) {     s = tolower(s);     if (s ==  a  || s ==  e  || s ==  i  || s ==  o  || s ==  u ) return 1;     return 0;   }   int isupper(char s) {     if (s >=  A  and s <=  Z ) return 1;     return 0;   }   int Set(int N, int pos) { return N = N | (1 << pos); }   int reset(int N, int pos) { return N = N & ~(1 << pos); }   int check(int N, int pos) { return (N & (1 << pos)); }   int toggle(int N, int pos) {     if (check(N, pos)) return N = reset(N, pos);     return N = Set(N, pos);   }   void pbit(int N) {     printf( ( );     for (int i = 10; i >= 0; i--) {       bool x = check(N, i);       cout << x;     }     puts( ) );   }   int main() {     int n, q;     cin >> n >> q;     string s;     cin >> s;     string w = s;     while (q--) {       s = w;       int val[202] = {0}, del[202] = {0};       for (int i = 0; i < (int)s.size(); i++) {         if (s[i] >=  0  and s[i] <=  9 ) val[i + 1] = s[i] -  0 ;       }       s =  #  + s;       char prev =  ) ;       int pidx, freq[111] = {0};       int l, r;       cin >> l >> r;       int cp = l, dp = 1;       while (cp >= l and cp <= r) {         if (del[cp]) {           cp += dp;         } else {           if (s[cp] >=  0  and s[cp] <=  9 ) {             freq[val[cp]]++;             val[cp]--;             if (val[cp] == -1) del[cp] = 1;           } else {             if (prev ==  >  or prev ==  < ) {               del[pidx] = 1;             }             if (s[cp] ==  > )               dp = 1;             else               dp = -1;           }           prev = s[cp];           pidx = cp;           cp += dp;         }       }       for (int i = 0; i < (int)10; i++) {         if (i) printf(   );         printf( %d , freq[i]);       }       puts(  );     }   }   