#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 ; }