F. Муравьепортация
ограничение по времени на тест
2 секунды
ограничение по памяти на тест
256 мегабайт
ввод
стандартный ввод
вывод
стандартный вывод

Муравей движется по действительной прямой с постоянной скоростью в $$$1$$$ единицу в секунду. Он начинает движение в точке $$$0$$$ и всегда движется вправо (поэтому его позиция увеличивается на $$$1$$$ каждую секунду).

Существует $$$n$$$ порталов, $$$i$$$-й из которых находится в позиции $$$x_i$$$ и телепортирует в позицию $$$y_i < x_i$$$. Каждый портал может быть либо активным, либо неактивным. Начальное состояние $$$i$$$-го портала определяется $$$s_i$$$: если $$$s_i=0$$$, то $$$i$$$-й портал изначально неактивен, если $$$s_i=1$$$, то $$$i$$$-й портал изначально активен. Когда муравей проходит через портал (т.е., когда его положение совпадает с положением портала):

  • если портал неактивен, он становится активным (в этом случае путь муравья не затрагивается);
  • если портал активен, то он становится неактивным, а муравей мгновенно телепортируется в позицию $$$y_i$$$, где продолжает двигаться как обычно.

Сколько времени (с момента начала движения) потребуется муравью, чтобы достичь позиции $$$x_n + 1$$$? Можно показать, что это произойдет за конечное время. Поскольку ответ может быть очень большим, вычислите его по модулю $$$998\,244\,353$$$.

Входные данные

Первая строка содержит целое число $$$n$$$ ($$$1\le n\le 2\cdot 10^5$$$) — количество порталов.

В $$$i$$$-й из следующих $$$n$$$ строк содержится три целых числа $$$x_i$$$, $$$y_i$$$ и $$$s_i$$$ ($$$1\le y_i < x_i\le 10^9$$$, $$$s_i\in\{0,1\}$$$) — положение $$$i$$$-го портала, положение, куда телепортируется муравей, когда он проходит через $$$i$$$-й портал (если он активен), и начальное состояние $$$i$$$-го портала.

Позиции порталов строго возрастают, то есть $$$x_1<x_2<\cdots<x_n$$$. Гарантируется, что $$$2n$$$ целых чисел $$$x_1, \, x_2, \, \dots, \, x_n, \, y_1, \, y_2, \, \dots, \, y_n$$$ попарно различны.

Выходные данные

Выведите количество времени в секундах, которое пройдет с момента начала движения муравья до момента достижения им позиции $$$x_n+1$$$. Поскольку ответ может быть очень большим, выведите его по модулю $$$998\,244\,353$$$.

Примеры
Входные данные
4
3 2 0
6 5 1
7 4 0
8 1 1
Выходные данные
23
Входные данные
1
454971987 406874902 1
Выходные данные
503069073
Входные данные
5
243385510 42245605 0
644426565 574769163 0
708622105 208990040 0
786625660 616437691 0
899754846 382774619 0
Выходные данные
899754847
Входные данные
5
200000000 100000000 1
600000000 400000000 0
800000000 300000000 0
900000000 700000000 1
1000000000 500000000 0
Выходные данные
3511295
Примечание

Объяснение первого примера: Муравей перемещается следующим образом (кривая стрелка обозначает телепортацию, прямая стрелка обозначает обычное движение со скоростью $$$1$$$, а время, затраченное на движение, написано над стрелкой). $$$$$$ 0 \stackrel{6}{\longrightarrow} 6 \leadsto 5 \stackrel{3}{\longrightarrow} 8 \leadsto 1 \stackrel{2}{\longrightarrow} 3 \leadsto 2 \stackrel{4}{\longrightarrow} 6 \leadsto 5 \stackrel{2}{\longrightarrow} 7 \leadsto 4 \stackrel{2}{\longrightarrow} 6 \leadsto 5 \stackrel{4}{\longrightarrow} 9 $$$$$$ Обратите внимание, что общее время составляет $$$6+3+2+4+2+2+4=23$$$.

Пояснение второго примера: Муравей перемещается следующим образом (кривая стрелка обозначает телепортацию, прямая стрелка обозначает обычное движение со скоростью $$$1$$$, а время, затраченное на движение, написано над стрелкой). $$$$$$ 0 \stackrel{454971987}{\longrightarrow} 454971987 \leadsto 406874902 \stackrel{48097086}{\longrightarrow} 454971988 $$$$$$ Обратите внимание, что общее время составляет $$$454971987+48097086=503069073$$$.

Объяснение третьего примера: Поскольку все порталы изначально неактивны, муравей не будет телепортирован и попадет прямо из $$$0$$$ в $$$x_n+1=899754846+1=899754847$$$.