func_code_string: #include <bits/stdc++.h>   using namespace std;   mt19937_64 rng(chrono::steady_clock::now().time_since_epoch().count());   const int MOD = 998244353;   void add(int &x, int y) {     x += y;     if (x >= MOD) x -= MOD;   }   int main() {     ios_base::sync_with_stdio(0);     cin.tie(0);     int n;     cin >> n;     vector<int> x(n), y(n), s(n);     for (int i = 0; i < (int)(n); i++) cin >> x[i] >> y[i] >> s[i];     vector<int> cost(n + 1);     for (int i = 0; i < (int)(n); i++) {       int j = lower_bound((x).begin(), (x).end(), y[i]) - x.begin();       cost[i + 1] = (x[i] - y[i]) % MOD;       add(cost[i + 1], cost[i]);       add(cost[i + 1], MOD - cost[j]);       add(cost[i + 1], cost[i]);     }     for (int i = (int)(n)-1; i >= ((int)0); i--) add(cost[i + 1], MOD - cost[i]);     int ans = (x.back() + 1) % MOD;     for (int i = 0; i < (int)(n); i++)       if (s[i]) add(ans, cost[i + 1]);     cout << ans % MOD << endl;     return 0;   }   