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