public class test{
public static void main(String[]args){
Scanner c=new Scanner(System.in);
int m1=c.nextInt();//一个矩阵的m1行
int n1=c.nextInt();//一个矩阵的n1列
int [][] a=new int[m1][n1];
for(int i=0;i<m1;i++){
for(int j=0;j<n1;j++){
a[i][j]=c.nextInt();//输入矩阵
}
}
int m2=c.nextInt();//一个矩阵的m2行
int n2=c.nextInt();//一个矩阵的n2列
int [][] b=new int[m2][n2];
for(int i=0;i<m2;i++){
for(int j=0;j<n2;j++){
b[i][j]=c.nextInt();//输入矩阵
}
}
for(int i=0;i<m1;i++){//计算后的矩阵行和第一个矩阵相同
int [][] d=new int[m1][n2];//存放计算后的矩阵
for(int j=0;j<n2;j++){//列和第二个矩阵相同
for(int k=0;k<m2;k++){
d[i][j]+=a[i][k]*b[k][j];//用第一个矩阵的每一行的每个数乘第二个矩阵的每一列并相加求和即为新的矩阵所在位置的数字
}
System.out.print(d[i][j]);//输出计算结果
System.out.print(" ");
}
System.out.println();
}
}
}