func_code_string: #include <bits/stdc++.h>   using namespace std;   set<pair<int, pair<int, int> > > l, u;   set<pair<int, pair<int, int> > >::iterator itu, itl;   const int INF = 1000 * 1000 * 1000LL + 10;   int main() {     int n, q, a, b, ll, lm, lt, uu, um, ut;     char c;     long long ans;     cin >> n >> q;     for (int i = 0; i < q; i++) {       scanf( %d %d %c , &a, &b, &c);       ans = 0;       if (c ==  U ) {         l.insert(make_pair(b, make_pair(INF, INF)));         u.insert(make_pair(a, make_pair(0, 0)));         itl = l.find(make_pair(b, make_pair(INF, INF)));         itu = u.find(make_pair(a, make_pair(0, 0)));         itu++;         if (itl == l.begin()) {           ll = 0;           lm = 0;           lt = q;         } else {           itl--;           ll = (*itl).first;           lm = (*itl).second.first;           lt = (*itl).second.second;           itl++;         }         if (itu == u.end()) {           uu = 0;           um = 0;           ut = q;         } else {           uu = n - (*itu).first + 1;           um = (*itu).second.first;           ut = (*itu).second.second;         }         itu--;         l.erase(itl);         u.erase(itu);         if (uu > ll || (ll == uu && ut < lt)) {           if (uu != b) ans += (um + b - uu);           u.insert(make_pair(a, make_pair(um + b - uu, i + 1)));         } else {           ans += (b - ll);           u.insert(make_pair(a, make_pair(b - ll, i + 1)));         }       } else {         l.insert(make_pair(b, make_pair(0, 0)));         u.insert(make_pair(a, make_pair(INF, INF)));         itl = l.find(make_pair(b, make_pair(0, 0)));         itu = u.find(make_pair(a, make_pair(INF, INF)));         itl++;         if (itl == l.end()) {           ll = n + 1;           lm = 0;           lt = q;         } else {           ll = (*itl).first;           lm = (*itl).second.first;           lt = (*itl).second.second;         }         if (itu == u.begin()) {           uu = n + 1;           um = 0;           ut = q;         } else {           itu--;           uu = n - (*itu).first + 1;           um = (*itu).second.first;           ut = (*itu).second.second;           itu++;         }         itl--;         l.erase(itl);         u.erase(itu);         if (uu > ll || (ll == uu && ut > lt)) {           if (ll != b) ans += (lm + ll - b);           l.insert(make_pair(b, make_pair(lm + ll - b, i + 1)));         } else {           ans += (uu - b);           l.insert(make_pair(b, make_pair(uu - b, i + 1)));         }       }       cout << ans << endl;     }   }   