시간 제한메모리 제한제출정답맞힌 사람정답 비율
3 초 512 MB126466.667%

문제

На всемирной олимпиаде роботов проводятся соревнования по робогольфу. Поле, на котором происходит игра, имеет вид прямоугольника, состоящего из $n \times m$ единичных квадратов. Строки поля пронумерованы числами от $1$ до $n$, а столбцы --- от $1$ до $m$. Таким образом, каждый квадрат характеризуется двумя положительными целыми числами $r$ и $c$ --- номерами строки и столбца, на пересечении которых он находится.

Два робота по очереди перемещают специальную фишку по полю, в некоторых квадратах которого находятся ловушки. Если фишка находится в квадрате $(r, c)$, то робот, выполняющий очередной ход, может переместить её в квадрат $(r + 1, c)$ или в квадрат $(r, c + 1)$. Если соответствующего квадрата не оказалось, поскольку фишка находится в последней строке или в последнем столбце поля, робот может переместить её за границу поля. Игра заканчивается в том случае, когда фишка оказывается либо за границей поля, либо в квадрате с ловушкой.

Каждой ловушке соответствует некоторое целое число $v_i$ --- её цена. Результат игры равен значению цены ловушки, в которой закончилась игра, или равен 0, если фишка оказалась за границей поля. Робот, который делает ход первым, стремится минимизировать результат игры, а робот, который делает ход вторым --- максимизировать.

Пусть фишка вначале находится в квадрате $(r, c)$. Гарантированный результат игры $g(r, c)$ для этого квадрата равен минимальному возможному результату игры, которого может добиться делающий первый ход робот вне зависимости от действий соперника. Поскольку стартовый квадрат до начала матча неизвестен, разработчики роботов хотят вычислить сумму значений $g(r, c)$ для всех квадратов поля.

Требуется написать программу, которая по заданным расположениям и ценам ловушек определит сумму гарантированных результатов игры по всем квадратам поля.

입력

Первая строка входных данных содержит три целых числа $n$, $m$ и $k$ ($1 \le n, m \le 10 ^ 9$; $1 \le k \le \min(n \cdot m, 10 ^ 5)$) --- количество строк, количество столбцов и количество ловушек, соответственно.

Следующие $k$ строк содержат по три целых числа $r_i$, $c_i$ и $v_i$ ($1 \le r_i \le n$, $1 \le c_i \le m$, $-10^9 \le v_i \le 10 ^ 9$) --- номер строки, номер столбца и цену $i$-й ловушки соответственно. Никакие две ловушки не находятся в одном и том же квадрате.

출력

Выведите одно целое число --- остаток от деления суммы гарантированных результатов игры по всем квадратам поля на число $998\,244\,353$.

Остаток от деления $a$ на $b$, где $a$ может быть отрицательным, равен числу $r = a \bmod b$, лежащему в диапазоне от $0$ до $b-1$, такому что $a = qb + r$, где $q$ --- целое. Например, $13 \bmod 4 = 1$, $-13 \bmod 4 = 3$, $12 \bmod 4 = 0$, $-12 \bmod 4 = 0$.

서브태스크

번호배점제한
120

$n, m \le 1\,000$

214

$n \le 5$, $m \le 10 ^ 9$

314

$n, m \le 100\,000$, $k = n + m - 1$, для любого $i$, $r_i = n$ или $c_i = m$

410

для любого $i$, $r_i \ge n - 1\,000$ и $c_i \ge m - 1\,000$

56

$n, m \le 100\,000$, для любого $i$, $v_i = 1$

66

$i$, $v_i = 1$

710

$n, m \le 100\,000$

810

$k \le 1\,000$

910

예제 입력 1

3 3 3
2 3 -2
3 1 3
1 2 1

예제 출력 1

998244352

예제 입력 2

2 4 3
1 2 2
2 4 -3
2 1 1

예제 출력 2

998244348

힌트

В первом примере гарантированные результаты игр для всех квадратов выглядят так (квадраты с ловушками выделены):

Сумма результатов равна: $1 + 1 - 2 + 0 - 2 - 2 + 3 + 0 + 0 = -1$. Ответ равен $(-1) \bmod 998\,244\,353 = -1 + 998\,244\,353 = 998\,144\,352$.

В втором примере гарантированные результаты игр для всех квадратов выглядят так (квадраты с ловушками выделены):

Сумма результатов равна: $1 + 2 + 0 - 3 + 1 + 0 - 3 - 3 = -5$. Ответ равен $(-5) \bmod 998\,244\,353 = 998\,244\,348$.

채점 및 기타 정보

  • 예제는 채점하지 않는다.