#include <bits/stdc++.h>
using namespace std;
long long int pre[200003];
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(NULL);
  cout.tie(NULL);
  long long int n;
  cin >> n;
  vector<array<long long int, 4>> v;
  for (long long int i = 1ll; i <= n; i++) {
    long long int s, e, on;
    cin >> s >> e >> on;
    v.push_back({s, e, on, 0});
  }
  for (long long int i = 0; i < v.size(); i++) {
    auto r = lower_bound(v.begin(), v.end(),
                         array<long long int, 4>{v[i][0], 0, 0, 0}) -
             v.begin();
    auto l = lower_bound(v.begin(), v.end(),
                         array<long long int, 4>{v[i][1], 0, 0, 0}) -
             v.begin();
    r--;
    if (r >= l) {
      v[i][3] =
          ((pre[r] - (l - 1ll >= 0 ? pre[l - 1ll] : 0) + 998244353ll) %
               998244353ll +
           ((v[i][0]) % 998244353ll - (v[i][1]) % 998244353ll + 998244353ll) %
               998244353ll) %
          998244353ll;
    } else {
      v[i][3] =
          ((v[i][0]) % 998244353ll - (v[i][1]) % 998244353ll + 998244353ll) %
          998244353ll;
    }
    pre[i] = ((i - 1ll >= 0 ? pre[i - 1ll] : 0) + (v[i][3]) % 998244353ll) %
             998244353ll;
  }
  long long int ans = ((v.back()[0]) % 998244353ll + 1ll) % 998244353ll;
  for (long long int i = 0; i < v.size(); i++) {
    if (v[i][2]) {
      ans = (ans + (v[i][3]) % 998244353ll) % 998244353ll;
    }
  }
  cout << ans << "\n";
}
