import sys input = lambda :sys.stdin.readline()[:-1] ni = lambda :int(input()) na = lambda :list(map(int,input().split())) yes = lambda :print("yes");Yes = lambda :print("Yes");YES = lambda : print("YES") no = lambda :print("no");No = lambda :print("No");NO = lambda : print("NO") ####################################################################### mod = 998244353 n = ni() l, r = zip(*[na() for i in range(n)]) l = list(l) r = list(r) for i in range(n): l[i], r[i] = -r[i], -l[i] L, R = l[0]-1, r[0]-1 ans = 0 for i in range(1, n): res = 0 D, U = max(L, l[i]), min(R, r[i]) # (U - l[i] + 1) + (U-l[i]) + (U-l[i]-1) + ... + (D - l[i] + 1) if D <= U: res += (U + D - 2 * l[i] + 2) * (U - D + 1) // 2 F = max(U, L - 1) if F < R: # res += (R - F) * (r[i] - l[i] + 1) ans += res * pow(R - L + 1, mod -2, mod) % mod * pow(r[i] - l[i] + 1, mod - 2, mod) % mod ans %= mod #print(res, res * pow(R - L + 1, mod -2, mod) % mod * pow(r[i] - l[i] + 1, mod - 2, mod) % mod) print((1 + ans) % mod)