"""
 总结: 
 https://mp.csdn.net/mp_blog/creation/success/149482114
 
"""
n ,m , q =map(int ,input().split())
maxtrix = [list(map(int, input().split())) for _ in range(n)]

d = [[0 for _ in range(m + 2)] for _ in range(n + 2)]
# 初始化差分数组
for i in range(1, n + 1):
    for j in range(1, m + 1):
        d[i][j] = maxtrix[i - 1][j - 1]
        if i > 1:
            d[i][j] -= maxtrix[i - 2][j - 1]
        if j > 1:
            d[i][j] -= maxtrix[i - 1][j - 2]
        if i > 1 and j > 1:
            d[i][j] += maxtrix[i - 2][j - 2]
# 处置修改
for _ in range(q):
    x1, y1, x2, y2, k = map(int, input().split())
    # 调整差分
    d[x1][y1] += k
    d[x2 + 1][y1] -= k
    d[x1][y2 + 1] -= k
    d[x2 + 1][y2 + 1] += k

# 根据差分还原数组
for i in range(1, n + 1):
    for j in range(1, m + 1):
        maxtrix[i - 1][j - 1] = d[i][j]
        if i > 1:
            maxtrix[i - 1][j - 1] += maxtrix[i - 2][j - 1]
        if j > 1:
            maxtrix[i - 1][j - 1] += maxtrix[i - 1][j - 2]
        if i > 1 and j > 1:
            maxtrix[i - 1][j - 1] -= maxtrix[i - 2][j - 2]

for row in maxtrix:
    print(" ".join(map(str, row)))