'''注意点:输入矩阵的建立,行录入的时候还是要注意末尾空格,直接用input().split()分隔,就可以把空格去掉了,直接用map(int, ),不用单独去处理末尾空格。
如果用input().split(' '),则末尾的空格会被分隔成一个‘’字符,没法直接map(int,)'''
while True:
try:
x=int(input())
y=int(input())
z=int(input())
A=[]
B=[]
for i in range(x):
A.append(list(map(int,input().split())))
for j in range(y):
B.append(list(map(int,input().split())))
#输入录入后,开始计算,先初始化一个二维数组,初始值为0
arr=[[0 for k in range(z)] for i in range(x)]
for i in range(x):
for k in range(z):
for j in range(y): #计算每个输出单元格的数据,A行与B列的乘积,长度为y
arr[i][k] += A[i][j]*B[j][k]
#按行输出
for i in range(x):
for k in range(z):
print(arr[i][k],end=' ')
print('')
except:
break