#include #include using namespace std; using namespace atcoder; using mint = modint998244353; int main() { int N; cin >> N; vector> interval(N); for (int i = 0; i < N; i++) cin >> interval[i].first >> interval[i].second; mint ans = 1; for (int i = 1; i < N; i++) { auto [li, ri] = interval[i]; auto [l0, r0] = interval[0]; int l = max(li, l0); int r = min(ri, r0); mint t = min(l-l0, r0-l0+1); if (l <= r) t += (mint(2)*ri-l-r)*(r-l+1)/(ri-li+1)/2; t /= r0-l0+1; ans += t; } cout << ans.val() << endl; }