######### 백준 2738 행렬 덧셈_브론즈5 ##########
import sys
arr_a = []
arr_b = []
n, m = map(int, input().split())
for _ in range(n):
arr_a.append(list(map(int, sys.stdin.readline().split())))
for _ in range(n):
arr_b.append(list(map(int, sys.stdin.readline().split())))
for i in range(n):
for j in range(m):
print(arr_a[i][j] + arr_b[i][j], end=" ")
print()
# #고수코드: 출력과정 리스트 컴프리핸션 사용
# for i in range(n):
# arr_a=[arr_a[i][j]+arr_b[i][j] for j in range(m)]
# print(*arr_a)
######### 백준 2566 최댓값_브론즈3 ##########
# (복습) 필요: 행렬을 풀어서 사용도 가능하다~
import sys
arr, max_row_index, max_rows= [], [], []
for i in range(9):
arr.append(list(map(int, sys.stdin.readline().split())))
max_row_index.append(arr[i].index(m := max(arr[i])))
max_rows.append(m)
result_max = max(max_rows)
result_max_row = max_rows.index(result_max)
print(result_max)
print(result_max_row+1, max_row_index[result_max_row]+1)
# # 고수코드: 행렬을 1차원으로 바꾸어 최댓값을 뽑고, 몫과 나머지로 인덱스 구함
# arr = *map(int,open(0).read().split()),
# a = arr.index(m:=max(arr))
# print(m, a//9+1,a%9+1)
######### 백준 10798 세로읽기_브론즈1 ##########
import sys
arr = []
for _ in range(5):
arr.append(sys.stdin.readline().rstrip())
for i in range(15):
for j in range(5):
if i > len(arr[j])-1: pass
else: print(arr[j][i], end="")
# # 고수코드: 입력받은 문자열을 char 하나씩 뽑아내어 출력 형식으로 list 저장
# li = ['']*75
# for i in range(5):
# S = input()
# idx = i
# for c in S:
# li[idx] = c
# idx += 5
# print(''.join(li))
######### 백준 2563 색종이_실버5 ##########
import sys
list = [[0]*100 for _ in range(100)]
for _ in range(int(input())):
x, y = map(int, sys.stdin.readline().split())
for i in range(x, x+10):
for j in range(y, y+10):
list[i][j] = 1
area = 0
for i in list:
area += i.count(1)
print(area)
# #고수코드1: 전체적으로 비슷하지만 슬라이싱으로 1을 대입
# for v in range(y,y+10):a[v][x:x+10]=[1]*10
# #고수코드2: 2차원 배열의 합을 알 수 있는 좋은 방법
# print(sum(map(sum,a)))