from itertools import accumulate
R, C, K = map(int, input().split())
vss = [[None]*C for _ in range(R)]
for _ in range(K):
    r, c, v = map(int, input().split())
    vss[r-1][c-1] = v

dp = []

for y in range(R):
    ndp = []
    for x in range(C):
        tmp = []
        uemax = 0
        if y > 0:
            uemax = max(dp[x])
        if vss[y][x] is None:
            if x > 0:
                left = ndp[-1]
                tmp.append(left[0] if left[0] > uemax else uemax)
                tmp.append(left[1])
                tmp.append(left[2])
                tmp.append(left[3])
            else:
                tmp.append(uemax)
                tmp.append(0)
                tmp.append(0)
                tmp.append(0)
        else:
            v = vss[y][x]
            if x > 0:
                left = ndp[-1]
                tmp.append(left[0] if left[0] > uemax else uemax)
                tmp.append(max(left[0]+v, left[1], uemax+v))
                tmp.append(left[1]+v if left[1]+v > left[2] else left[2])
                tmp.append(left[2]+v if left[2]+v > left[3] else left[3])
            else:
                tmp.append(uemax)
                tmp.append(uemax + v)
                tmp.append(0)
                tmp.append(0)
        ndp.append(tmp)
    dp = ndp

print(max(dp[-1])) from itertools import accumulate R, C, K = map(int, input().split()) R map(int, input().split()) map int input().split() ().split () input split C K [None]*C for _ in range(R) for _ in range(R) _ range(R) range R for _ in range(R) [None]*C [None] None C vss = [[None]*C for _ in range(R)] vss [[None]*C for _ in range(R)] for _ in range(K):
    r, c, v = map(int, input().split())
    vss[r-1][c-1] = v _ range(K) range K r, c, v = map(int, input().split()) r map(int, input().split()) map int input().split() ().split () input split c v vss[r-1][c-1] = v vss[r-1][c-1] [r-1] vss r-1 r 1 c-1 c 1 v dp = [] dp [] for y in range(R):
    ndp = []
    for x in range(C):
        tmp = []
        uemax = 0
        if y > 0:
            uemax = max(dp[x])
        if vss[y][x] is None:
            if x > 0:
                left = ndp[-1]
                tmp.append(left[0] if left[0] > uemax else uemax)
                tmp.append(left[1])
                tmp.append(left[2])
                tmp.append(left[3])
            else:
                tmp.append(uemax)
                tmp.append(0)
                tmp.append(0)
                tmp.append(0)
        else:
            v = vss[y][x]
            if x > 0:
                left = ndp[-1]
                tmp.append(left[0] if left[0] > uemax else uemax)
                tmp.append(max(left[0]+v, left[1], uemax+v))
                tmp.append(left[1]+v if left[1]+v > left[2] else left[2])
                tmp.append(left[2]+v if left[2]+v > left[3] else left[3])
            else:
                tmp.append(uemax)
                tmp.append(uemax + v)
                tmp.append(0)
                tmp.append(0)
        ndp.append(tmp)
    dp = ndp y range(R) range R ndp = [] ndp [] for x in range(C):
        tmp = []
        uemax = 0
        if y > 0:
            uemax = max(dp[x])
        if vss[y][x] is None:
            if x > 0:
                left = ndp[-1]
                tmp.append(left[0] if left[0] > uemax else uemax)
                tmp.append(left[1])
                tmp.append(left[2])
                tmp.append(left[3])
            else:
                tmp.append(uemax)
                tmp.append(0)
                tmp.append(0)
                tmp.append(0)
        else:
            v = vss[y][x]
            if x > 0:
                left = ndp[-1]
                tmp.append(left[0] if left[0] > uemax else uemax)
                tmp.append(max(left[0]+v, left[1], uemax+v))
                tmp.append(left[1]+v if left[1]+v > left[2] else left[2])
                tmp.append(left[2]+v if left[2]+v > left[3] else left[3])
            else:
                tmp.append(uemax)
                tmp.append(uemax + v)
                tmp.append(0)
                tmp.append(0)
        ndp.append(tmp)
     x range(C) range C tmp = [] tmp [] uemax = 0 uemax 0 if y > 0:
            uemax = max(dp[x])
         y > 0 y 0 uemax = max(dp[x]) uemax max(dp[x]) max dp[x] dp x if vss[y][x] is None:
            if x > 0:
                left = ndp[-1]
                tmp.append(left[0] if left[0] > uemax else uemax)
                tmp.append(left[1])
                tmp.append(left[2])
                tmp.append(left[3])
            else:
                tmp.append(uemax)
                tmp.append(0)
                tmp.append(0)
                tmp.append(0)
        else:
            v = vss[y][x]
            if x > 0:
                left = ndp[-1]
                tmp.append(left[0] if left[0] > uemax else uemax)
                tmp.append(max(left[0]+v, left[1], uemax+v))
                tmp.append(left[1]+v if left[1]+v > left[2] else left[2])
                tmp.append(left[2]+v if left[2]+v > left[3] else left[3])
            else:
                tmp.append(uemax)
                tmp.append(uemax + v)
                tmp.append(0)
                tmp.append(0)
         vss[y][x] is None vss[y][x] [y] vss y x None if x > 0:
                left = ndp[-1]
                tmp.append(left[0] if left[0] > uemax else uemax)
                tmp.append(left[1])
                tmp.append(left[2])
                tmp.append(left[3])
            else:
                tmp.append(uemax)
                tmp.append(0)
                tmp.append(0)
                tmp.append(0)
         x > 0 x 0 left = ndp[-1] left ndp[-1] ndp -1 tmp.append(left[0] if left[0] > uemax else uemax) tmp.append tmp append left[0] if left[0] > uemax else uemax left[0] > uemax left[0] left 0 uemax left[0] left 0 uemax tmp.append(left[1]) tmp.append tmp append left[1] left 1 tmp.append(left[2]) tmp.append tmp append left[2] left 2 tmp.append(left[3]) tmp.append tmp append left[3] left 3 tmp.append(uemax) tmp.append tmp append uemax tmp.append(0) tmp.append tmp append 0 tmp.append(0) tmp.append tmp append 0 tmp.append(0) tmp.append tmp append 0 v = vss[y][x] v vss[y][x] [y] vss y x if x > 0:
                left = ndp[-1]
                tmp.append(left[0] if left[0] > uemax else uemax)
                tmp.append(max(left[0]+v, left[1], uemax+v))
                tmp.append(left[1]+v if left[1]+v > left[2] else left[2])
                tmp.append(left[2]+v if left[2]+v > left[3] else left[3])
            else:
                tmp.append(uemax)
                tmp.append(uemax + v)
                tmp.append(0)
                tmp.append(0)
         x > 0 x 0 left = ndp[-1] left ndp[-1] ndp -1 tmp.append(left[0] if left[0] > uemax else uemax) tmp.append tmp append left[0] if left[0] > uemax else uemax left[0] > uemax left[0] left 0 uemax left[0] left 0 uemax tmp.append(max(left[0]+v, left[1], uemax+v)) tmp.append tmp append max(left[0]+v, left[1], uemax+v) max left[0]+v left[0] left 0 v left[1] left 1 uemax+v uemax v tmp.append(left[1]+v if left[1]+v > left[2] else left[2]) tmp.append tmp append left[1]+v if left[1]+v > left[2] else left[2] left[1]+v > left[2] left[1]+v left[1] left 1 v left[2] left 2 left[1]+v left[1] left 1 v left[2] left 2 tmp.append(left[2]+v if left[2]+v > left[3] else left[3]) tmp.append tmp append left[2]+v if left[2]+v > left[3] else left[3] left[2]+v > left[3] left[2]+v left[2] left 2 v left[3] left 3 left[2]+v left[2] left 2 v left[3] left 3 tmp.append(uemax) tmp.append tmp append uemax tmp.append(uemax + v) tmp.append tmp append uemax + v uemax v tmp.append(0) tmp.append tmp append 0 tmp.append(0) tmp.append tmp append 0 ndp.append(tmp) ndp.append ndp append tmp dp = ndp dp ndp print(max(dp[-1])) print max(dp[-1]) max dp[-1] dp -1 dp = ndp ndp dp left = ndp[-1] ndp[-1] left r, c, v = map(int, input().split()) map(int, input().split()) r R, C, K = map(int, input().split()) map(int, input().split()) R v = vss[y][x] vss[y][x] v c, v = map(int, input().split()) map(int, input().split()) c C, K = map(int, input().split()) map(int, input().split()) C ndp = [] [] ndp left = ndp[-1] ndp[-1] left vss = [[None]*C for _ in range(R)] [[None]*C for _ in range(R)] vss uemax = 0 0 uemax K = map(int, input().split()) map(int, input().split()) K dp = [] [] dp uemax = max(dp[x]) max(dp[x]) uemax v = map(int, input().split()) map(int, input().split()) v tmp = [] [] tmp
from itertools import accumulate
R, C, K = map(int, input().split())
vss = [[None]*C for _ in range(R)]
for _ in range(K):
    r, c, v = map(int, input().split())
    vss[r-1][c-1] = v

dp = []

for y in range(R):
    ndp = []
    for x in range(C):
        tmp = []
        uemax = 0
        if y > 0:
            uemax = max(dp[x])
        if vss[y][x] is None:
            if x > 0:
                left = ndp[-1]
                tmp.append(left[0] if left[0] > uemax else uemax)
                tmp.append(left[1])
                tmp.append(left[2])
                tmp.append(left[3])
            else:
                tmp.append(uemax)
                tmp.append(0)
                tmp.append(0)
                tmp.append(0)
        else:
            v = vss[y][x]
            if x > 0:
                left = ndp[-1]
                tmp.append(left[0] if left[0] > uemax else uemax)
                tmp.append(max(left[0]+v, left[1], uemax+v))
                tmp.append(left[1]+v if left[1]+v > left[2] else left[2])
                tmp.append(left[2]+v if left[2]+v > left[3] else left[3])
            else:
                tmp.append(uemax)
                tmp.append(uemax + v)
                tmp.append(0)
                tmp.append(0)
        ndp.append(tmp)
    dp = ndp

print(max(dp[-1]))
