import sys,random,bisect from collections import deque,defaultdict from heapq import heapify,heappop,heappush from itertools import permutations from math import gcd,log input = lambda :sys.stdin.readline().rstrip() mi = lambda :map(int,input().split()) li = lambda :list(mi()) mod = 998244353 H,W,K = mi() tre = [] res = 0 for _ in range(K): x,y,v = mi() x,y = x-1,y-1 """ 1 <= i <= H 1 <= j <= W i+j <= x+y i-j <= x-y をみたすijの数え上げ for i in range(H): j_min = max(0,i-(x-y)) j_max= min(W-1,x+y-i) """ tmp = 0 i_upper = min(x+1,H,W+x-y,x+y+1) if i_upper <= 0: continue tmp = i_upper c = x+y-(W-1) if 0 <= c <= i_upper: tmp += c * (W-1) tmp += (x+y) * (i_upper-c) tmp -= i_upper*(i_upper-1)//2 - c*(c-1)//2 elif c < 0: tmp += (x+y) * i_upper tmp -= i_upper*(i_upper-1)//2 else: tmp += i_upper * (W-1) if max(0,x-y) < i_upper: tmp += (x-y) * (i_upper-max(0,x-y)) tmp -= i_upper*(i_upper-1)//2 - max(0,x-y)*(max(0,x-y)-1)//2 res += v * tmp % mod print(res % mod)