import java.util.Scanner; public class Main { public static void main(String[] args) { Scanner sc = new Scanner(System.in); int n = sc.nextInt(); int m = sc.nextInt(); int q = sc.nextInt(); // 原始矩阵,1-based索引 long[][] matrix = new long[n + 2][m + 2]; for (int i = 1; i <= n; i++) { for (int j = 1; j <= m; j++) { matrix[i][j] = sc.nextLong(); } } // 二维差分矩阵 long[][] diff = new long[n + 2][m + 2]; // 处理所有更新操作 for (int t = 0; t < q; t++) { int x1 = sc.nextInt(); int y1 = sc.nextInt(); int x2 = sc.nextInt(); int y2 = sc.nextInt(); long k = sc.nextLong(); // 差分矩阵标记 diff[x1][y1] += k; diff[x1][y2 + 1] -= k; diff[x2 + 1][y1] -= k; diff[x2 + 1][y2 + 1] += k; } // 计算行前缀和 for (int i = 1; i <= n; i++) { for (int j = 1; j <= m; j++) { diff[i][j] += diff[i][j - 1]; } } // 计算列前缀和 for (int j = 1; j <= m; j++) { for (int i = 1; i <= n; i++) { diff[i][j] += diff[i - 1][j]; } } // 应用增量到原始矩阵 for (int i = 1; i <= n; i++) { for (int j = 1; j <= m; j++) { matrix[i][j] += diff[i][j]; } } // 输出结果 for (int i = 1; i <= n; i++) { for (int j = 1; j <= m; j++) { System.out.print(matrix[i][j] + " "); } System.out.println(); } } }