/*
?? 
????????????????????????? 
???? 
1 2 3 
4 5 6 
7 8 9 
?? 
1 4 7 
2 5 8 
3 6 9 

 ???? 
????????n?????n?n?? 
n???????100
 
???? 
?????????
 
???? 
3
1 2 3
4 5 6 
7 8 9
 
???? 
1 4 7 
2 5 8
3 6 9
 
?? 
???????????\t?? 
????????????? 
for (col=0;  col < n-1;  col++) 
{ 
  printf("%d\t",newMatrix[row][col]); 
} 
printf("%d\n",newMatrix[row][n-1]); 


?? 
???int a[4][3]???int b[3][5]??????????????????c=a*b. ????? 
c00 c01 c02 c03 c04 
c10 c11 c12 c13 c14 
c20 c21 c22 c23 c24 
c30 c31 c32 c33 c34 

?????????: 
????A[m][q]*B[q][n], 
????????C[m][n]?????C?????? 
C[i][j] = A[i][0]*B[0][j] + A[i][1]*B[1][j] + ..... + A[i][q]*B[q][j] 

?????????????4*3?3*5?????????????
 
???? 
????????????x1?y1?1<=x1<=100, 1<=y1<=100?? 
????x1?????y1???????????? 
???????????????x2?y2?1<=x2<=100?1<=y2<=100?????x2?y1???? 
????x2?????y2???????????? 
?????????int??????? 

??????? 
x1 y1 
a00 a01 a02 
a10 a11 a12 
a20 a21 a22 
a30 a31 a32 
x2 y2 
b00 b01 b02 b03 b04 
b10 b11 b12 b13 b14 
b20 b21 b22 b23 b24
 
???? 
?????x1???????????y2??????????c?????????? 

??????? 
c00 c01 c02 c03 c04 
c10 c11 c12 c13 c14 
c20 c21 c22 c23 c24 
c30 c31 c32 c33 c34
 
???? 
4 3
1 2 3
4 5 6
7 8 9
10 11 12
3 5
7 8 9 10 11
4 5 6 7 8
1 2 3 4 5

???? 
18 24 30 36 42
54 69 84 99 114
90 114 138 162 186
126 159 192 225 258

?? 
????????? 
 */


int main()
{
	int p,q,r,i,j,k;
	int a[101][101],b[101][101],c[101][101];

	cin>>p>>q;
	for (i=1;i<=p;i++)
	{
		for (j=1;j<=q;j++)
		{
			cin>>a[i-1][j-1];
		}
	}
	cin>>q>>r;
	for (i=1;i<=q;i++)
	{
		for (j=1;j<=r;j++)
		{
			cin>>b[i-1][j-1];
		}
	}


	for (i=0;i<=100;i++)
	{
		for (j=0;j<=100;j++)
		{
			c[i][j]=0;
		}
	}

	for (i=0;i<=p-1;i++)
	{
		for (j=0;j<=r-1;j++)
		{
			for (k=0;k<=q;k++)
			{
				c[i][j]=c[i][j]+a[i][k]*b[k][j];
			}
		}
	}

	for (i=0;i<=p-1;i++)
	{
		for (j=0;j<=r-1;j++)
		{
			if (j!=(r-1))  cout<<c[i][j]<<" ";
			else  cout<<c[i][j];
		}
		cout<<endl;
	}

	return 0;
}