На большой платформе по спортивному программированию ForceCoders скоро начнется очередной контест. Авторы подготовили \(n\) задач, и так как платформа очень популярна, аж \(998244351\) программист со всего мира будет принимать участие в контесте.
Для каждой задачи авторы оценили количество участников, которые ее решат: по \(i\)-й задаче точно будет не менее \(l_i\) и не более \(r_i\) успешных решений.
Создатель платформы ForceCoders использует различные критерии, чтобы определить, является ли контест хорошим. Один из этих критериев учитывает количество инверсий в порядке задач. Инверсией называется пара задач \((x, y)\), такая, что \(x\) расположена в контесте раньше (\(x < y\)), но количество успешных решений по задаче \(y\) строго больше.
Очевидно, и создатель платформы, и авторы контеста хотят, чтобы контест получился хорошим. Поэтому сейчас они хотят посчитать вероятность того, что не будет ни одной инверсии в порядке задач. Можно предположить, что для каждой задачи \(i\) любое целочисленное количество решений (между \(l_i\) и \(r_i\)) равновероятно, и все эти значения независимы друг от друга.
Выходные данные
Вероятность, что в порядке задач не будет инверсий, можно выразить в виде несократимой дроби \(\frac{x}{y}\), где \(y\) взаимно просто с \(998244353\). Выведите одно целое число — значение \(xy^{-1}\), взятое по модулю \(998244353\), где \(y^{-1}\) — такое число, что \(yy^{-1} \equiv 1\) \((mod\) \(998244353)\).