'''
思路:
根据输入构建二位数组A、B来代表两个矩阵
[x*y] * [y:z] = [x*z————用res构建一个x行z列的矩阵[[0 for x in range(z)] for x in range(x)
计算矩阵,遍历行x、遍历列z,遍历元素下标y
根据矩阵计算方法,第i行第j列的结果就是res[i][j] += A[i][k]*B[k][j] 累加计算对应位置的值
打印输出res
'''
while True:
try:
x = int(input())
y = int(input())
z = int(input())
A,B = [],[]
res = [[0 for x in range(z)] for x in range(x)]
for i in range(x):
A += [list(map(int,input().split()))]
for i in range(y):
B += [list(map(int,input().split()))]
for i in range(x):
for j in range(z):
for k in range(y):
res[i][j] += A[i][k]*B[k][j]
for x in res:
print(*x)
except:
break