Задача №114131. Робогольф
На всемирной олимпиаде роботов проводятся соревнования по робогольфу. Поле, на котором происходит игра, имеет вид прямоугольника, состоящего из \(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\).

3 3 3 2 3 -2 3 1 3 1 2 1
998244352
2 4 3 1 2 2 2 4 -3 2 1 1
998244348