#include<bits/stdc++.h>
#define int long long
typedef long long ll;
using namespace std;
const int N = 1e5 + 10;
const int mod  = 1e9 + 7;
void solve(){
    int n,m,q;
    cin>>n>>m>>q;
    int a[n+10][m+10];
    memset(a,0,sizeof a);
    for (int i = 1; i <= n; ++i) {
        for (int j = 1; j <= m; ++j) {
            cin>>a[i][j];
        }
    }
    int b[n+10][m+10],c[n+10][m+10];
    memset(b,0,sizeof b);   //操作a数组
    memset(c,0,sizeof c);   //操作b数组
    for (int i = 1; i <= n; ++i) {
        for (int j = 1; j <= m; ++j) {
            b[i][j] = a[i][j] - a[i][j-1];
        }
    }
    for (int j = 1; j <= m; ++j) {
        for (int i = 1; i <= n; ++i) {
            c[i][j] = b[i][j] - b[i-1][j];
        }
    }
    while (q--){
        int x1,y1,x2,y2,k;
        cin>>x1>>y1>>x2>>y2>>k;
        c[x1][y1] += k;
        c[x2+1][y1] -= k;    //相当于操作b数组在y1加上k和y2+1减去k
        c[x1][y2+1] -= k;
        c[x2+1][y2+1] += k;
    }
    for (int j = 1; j <= m; ++j) {
        for (int i = 1; i <= n; ++i) {
            b[i][j] = c[i][j] + b[i-1][j];    //更新b数组
        }
    }
    for (int i = 1; i <= n; ++i) {
        for (int j = 1; j <= m; ++j) {
            a[i][j] = b[i][j] + a[i][j-1];    //更新a数组
            cout<<a[i][j]<<" ";
        }
        cout<<endl;
    }
}
signed main(){
    ios::sync_with_stdio(false);
    cin.tie(NULL),cout.tie(NULL);
    int t = 1;
    //cin>>t;
    while(t--){
        solve();
    }
    return 0 ;
}