Задано \(n\) отрезков на координатной оси \(Ox\). \(i\)-й отрезок задан парой \(l_i, r_i\), где \(l_i\) равно позиции левого конца \(i\)-го отрезка, а \(r_i\) равно позиции правого конца \(i\)-го отрезка. Отрезки могут пересекаться, вкладываться и даже совпадать. Отрезок — это множество чисел (включая вещественнозначные) которые находятся между концами отрезка или совпадают с ними. Формально, отрезок \([l, r]=\{x~|~x \in \Bbb{R},~l \le x \le r\}\).
Назовем объединением отрезков все точки оси, покрытые набором отрезков. Назовем подмножество заданных отрезков хорошим, если его объединение равно объединению всех \(n\) отрезков.
Ваша задача — посчитать количество хороших подмножеств заданных \(n\) отрезков. Так как ответ может быть очень большим, выведите его по модулю \(998244353\).
Выходные данные
Выведите количество хороших подмножеств заданного множества отрезков. Так как ответ может быть очень большим, выведите его по модулю \(998244353\).
Примеры
| № | Входные данные | Выходные данные |
|
1
|
3 1 1 2 6 1 6
|
4
|
|
2
|
2 3 4 2 5
|
2
|
|
3
|
4 1 2 5 5 2 3 1 3
|
5
|