import sys
input = sys.stdin.readline
def sharkMove():
temp = [[0] * C for i in range(R)] # 상어 이동을 업데이트한 후에 리턴할 새로운 격자판 배열
for i in range(R): # 행
for j in range(C): # 열
if g[i][j] != 0: # 상어 이동 전에 각 칸이 비어 있지 않고 상어가 있을 때
x, y, s, d, z = i, j, g[i][j][0], g[i][j][1], g[i][j][2]
while s > 0:
x += dx[d]
y += dy[d]
if (0 <= x < R) and (0 <= y < C):
s -= 1 # 상어 이동경로가 격자판 범위를 넘지 않을 때.
else:
x -= dx[d] # 격자판 범위 넘어설 때 방향전환
y -= dy[d]
if d == 0: d = 1
elif d == 1: d = 0
elif d == 2: d = 3
elif d == 3: d = 2
# 격자판 벽에 부딪히고 방향 반대로 전환
# 위 <-> 아래, 좌 <-> 우
if temp[x][y] == 0: # 해당 자리에 상어 없으면 예정된 상어 끌어오기
temp[x][y] = [g[i][j][0], d, z]
else: # 옮기려는 곳에 기존 상어 temp[x][y][0], temp[x][y][1], temp[x][y][2] => s, d ,z 역할
if temp[x][y][2] < z: # 중복된 상어 중에 더 무거운 개체 선택.
temp[x][y] = [g[i][j][0], d, z]
return temp
dx = [-1, 1, 0, 0]
dy = [0, 0, 1, -1]
# dx, dy 순서대로 위 = (-1, 0) / 아래 = (1, 0) / 좌 (0, -1) / 우 (0, 1)
R, C, m = map(int, input().split())
g = [[0] * C for i in range(R)] # 초기 격자판 생성
result = 0
for i in range(1, m + 1):
r, c, s, d, z = map(int, input().split())
g[r - 1][c - 1] = [s, d - 1, z]
# d -> 위 : 1, 아래 : 2, 우 : 3, 좌 : 4
# 방향 d를 (d - 1)로 넣은 것은 dx, dy의 인덱스 0 ~ 3으로 맵핑용
for i in range(C): # 낚시맨은 열 기준 이동
for j in range(R): # 행 돌아보기
if g[j][i] != 0: # 가장 가까운 상어 발견
result += g[j][i][2]
g[j][i] = 0 # 가장 바닥에 가까운 상어 삭제
break
g = sharkMove() # 상어 이동후 격자판 갱신
print(result)