'''注意点:输入矩阵的建立,行录入的时候还是要注意末尾空格,直接用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