semeru/Code-Code-CloneDetection-POJ104 huggingface dataset:
int main()
{
    int x1,y1;
    cin>>x1>>y1;
    int squarea[x1][y1];
    int i,j,k;
    for(i=0;i<x1;i++)
    {
                   for(j=0;j<y1;j++)
                   {cin>>squarea[i][j];}  
    }//??????????
    int x2,y2;
    cin>>x2>>y2;
    int squareb[x2][y2];
     for(i=0;i<x2;i++)
    {
                   for(j=0;j<y2;j++)
                   {cin>>squareb[i][j];}  
    }//??????????
    int result[x1][y2];
    for(i=0;i<x1;i++)
    {
                     for(j=0;j<y2;j++)
                     {
                                      result[i][j]=0;//???
                                      for(k=0;k<y1;k++)
                                      {result[i][j]+=squarea[i][k]*squareb[k][j];}//??
                     }
    }
    for(i=0;i<x1;i++)//????
    {
                     cout<<result[i][0];//???????
                     for(j=1;j<y2;j++)
                     {cout<<" "<<result[i][j];}//???????
                     cout<<endl;
    }
    cin>>i;
    return 0;
}
int main()
{
    int x1, x2, y1, y2, i, j, k;
    int a[101][101], b[101][101], c[101][101];
    cin >> x1 >> y1;
    for ( i = 1; i <= x1; i++ )
        for ( j = 1; j <= y1; j++ )
            cin >> a[i][j];
    cin >> x2 >> y2;
    for ( i = 1; i <= x2; i++ )
        for ( j = 1; j <= y2; j++ )
            cin >> b[i][j];
    for ( i = 1; i <= x1; i++ )
        for ( j = 1; j <= y2; j++ )
            c[i][j] = 0;
    for ( i = 1; i <= x1; i++ )
        for ( j = 1;j <= y2; j++ )
            for ( k = 1; k <= x2; k++ )
                c[i][j] += a[i][k] * b[k][j];
    for ( i = 1; i <= x1; i++ )
    {
        cout << c[i][1];
        for ( j = 2;j <= y2; j++ )
            cout << " " << c[i][j];
        cout << endl;
    }
    return 0;
}
void main()
{
    int a[100][100],b[100][100],c[100][100],x,y,i,j,k,x1,y1,x2,y2;
    for(k=1;k<=2;k++)
    {
        scanf("%d%d",&x,&y);
        if(k==1)x1=x,y1=y;
        if(k==2)x2=x,y2=y;
        for(i=0;i<=x-1;i++)
        {
            for(j=0;j<=y-1;j++)
            {
                if(k==1)scanf("%d",&a[i][j]);
                if(k==2)scanf("%d",&b[i][j]);
            }
        }
    }
    for(i=0;i<=x1-1;i++)
    {
        for(j=0;j<=y2-1;j++)
        {
            c[i][j]=0;
            for(k=0;k<=y1-1;k++)
            {
                c[i][j]=c[i][j]+a[i][k]*b[k][j];
            }
        }
    }
    for(i=0;i<=x1-1;i++)
    {
        for(j=0;j<=y2-1;j++)
        {
            if(j==0) printf("%d",c[i][j]);
            else printf(" %d",c[i][j]);
            if(j==y2-1)printf("\n");
        }
    }
}
int main()
{
    int x1,x2,y1,y2;
    scanf("%d %d",&x1,&y1);
    int a[100][100];
    for(int i=0;i<=x1-1;i++)
    {
        for(int j=0;j<=y1-1;j++)
        {
            scanf("%d",&a[i][j]);    
        }    
    }
    scanf("%d %d",&x2,&y2);
    int b[100][100];
    for(int k=0;k<=x2-1;k++)
    {
        for(int l=0;l<=y2-1;l++)
        {
            scanf("%d",&b[k][l]);    
        }    
    }
    int c[100][100];
    for(int m=0;m<=x1-1;m++)
    {  
        for(int n=0;n<=y2-1;n++)
        {
            c[m][n]=0;    
            for(int o=0;o<=x2-1;o++)
            {
                c[m][n]=c[m][n]+a[m][o]*b[o][n];   
            }        
        }    
    }
    for(int p=0;p<=x1-1;p++)
    {
        for(int q=0;q<=y2-2;q++)
        {
            printf("%d ",c[p][q]);    
        }    
        printf("%d\n",c[p][y2-1]);
    }
    return 0;
}
main()
{
    int a[100][100],b[100][100],c[100][100]={0};
    int x1,x2,y1,y2,i,j,k,max;
    scanf("%d",&x1);
    scanf("%d",&y1);
    for(i=0;i<x1;i++)
    {
        for(j=0;j<y1;j++)
            scanf("%d",&a[i][j]);
    }
    scanf("%d",&x2);
    scanf("%d",&y2);
    for(i=0;i<x2;i++)
    {
        for(j=0;j<y2;j++)
            scanf("%d",&b[i][j]);
    }
    for(i=0;i<x1;i++)
    {
        for(j=0;j<y2;j++)
            {
                for(k=0;k<x2;k++)
                    c[i][j]+=a[i][k]*b[k][j];
            }
    }
    for(i=0;i<x1;i++)
    {
        for(j=0;j<y2;j++)
        {
            if(j==0&&j!=y2-1)
                printf("%d",c[i][j]);
            else if(j!=0&&j==y2-1)
                printf(" %d\n",c[i][j]);
            else if(j==0&&j==y2-1)
                printf("%d\n",c[i][j]);
            else    printf(" %d",c[i][j]);
        }
    }
    getchar();
    getchar();
}
int main()
{
	int row1,row2,col1,col2,i,j,a[100+10][100+10],b[100+10][100+10],c[100+10][100+10]={0},k;
	cin>>row1>>col1;
	for(i=1;i<=row1;i++)
		for(j=1;j<=col1;j++)
			cin>>a[i][j];
	cin>>row2>>col2;
	for(i=1;i<=row2;i++)
		for(j=1;j<=col2;j++)
			cin>>b[i][j];
	for(i=1;i<=row1;i++)
		for(j=1;j<=col2;j++)
			for(k=1;k<=col1;k++)
				c[i][j]+=a[i][k]*b[k][j];
	for(i=1;i<=row1;i++)
		{
			for(j=1;j<col2;j++)
			{cout<<c[i][j]<<' ';}
	        cout<<c[i][col2]<<endl;
	    }
	return 0;
}
main()
{
      int a[100][100],b[100][100],c[100][100]={0};
      int x1,y1,x2,y2;
      int i,j;
      scanf("%d %d",&x1,&y1);
      for(i=0;i<x1;i++)
      {
                       for(j=0;j<y1;j++)
                       {
                                        scanf("%d",&a[i][j]);
                       }
      }
      int p,q;
      scanf("%d %d",&x2,&y2);
      for(p=0;p<x2;p++)
      {
                       for(q=0;q<y2;q++)
                       {
                                        scanf("%d",&b[p][q]);
                       }
      }
      for(int m=0;m<x1;m++)
      {
              for(int n=0;n<y2;n++)
              {
                      for(int x=0;x<y1;x++)
                      {c[m][n]=c[m][n]+a[m][x]*b[x][n];}
              }
      }
      for(int m=0;m<x1;m++)
      {
              int n;
              for(n=0;n<y2-1;n++)
              {
                      printf("%d ",c[m][n]);
              }
                      if(n==y2-1)
                      printf("%d\n",c[m][n]);
      }
      }
int main()
{
	int x1, y1, x2, y2, a[100][100]={0}, b[100][100]={0},c[100][100]={0};
	cin>>x1>>y1;
	for(int i=0; i < x1; i++)
	{
		for(int j=0; j < y1; j++)
		{
			cin>>a[i][j];
		}
	}
	cin>>x2>>y2;
	for(int i2=0; i2 < x2;i2++)
	{
		for(int j2=0;j2 < y2; j2++)
		{
			cin>>b[i2][j2];
		}
	}
	for(int i3=0; i3 < x1;i3++)
	{
		for(int i4=0; i4 < y2;i4++)
		{
			for(int i0=0; i0 < x2; i0++)
			{
				c[i3][i4]=c[i3][i4]+a[i3][i0]*b[i0][i4];
			}
		}
	}
	for(int i5=0; i5 < x1; i5++)
	{
		for(int i6=0;i6 < y2; i6++)
		{
			if(i6 == (y2-1))
			{
				cout<<c[i5][i6]<<endl;
			}
			else
			{
				cout<<c[i5][i6]<<" ";
			}
		}
	}
return 0;
}
/*bss*/
int x1, y1, x2, y2, a[MAX][MAX], b[MAX][MAX], c[MAX][MAX];


int main(){
    int i, j, k;
    scanf("%d%d", &x1, &y1);
    for(i=0; i<x1; ++i)
        for(j=0; j<y1; ++j)
            scanf("%d", &a[i][j]);
    scanf("%d%d", &x2, &y2);
    for(i=0; i<x2; ++i)
        for(j=0; j<y2; ++j)
            scanf("%d", &b[i][j]);
    if(y1!=x2) return 0;
    for(i=0; i<x1; ++i)
        for(j=0; j<y2; ++j)
            for(k=0; k<x2; ++k)
                c[i][j]+=a[i][k]*b[k][j];
    for(i=0; i<x1; ++i){
        printf("%d", c[i][0]);
        for(j=1; j<y2; ++j)
            printf(" %d", c[i][j]);
        puts("");
    }
    return 0;
}
int main()
{
int a[100][100],b[100][100],c[100][100];
int x1,y1,x2,y2;
int j1,j2,j3,j4,i1,i2,i3,i4;
memset(c,0,sizeof(c));
scanf("%d %d",&x1,&y1);
for (j1=0;j1<=x1-1;j1++)
{
for(j2=0;j2<=y1-1;j2++)
{
scanf("%d ",&a[j1][j2]);
}
}
scanf("%d %d",&x2,&y2);
for(j3=0;j3<=x2-1;j3++)
{
for(j4=0;j4<=y2-1;j4++)
{
scanf("%d ",&b[j3][j4]);
}
}
for(i1=0;i1<x1;i1++)
{
for(i2=0;i2<y2;i2++)
{
for(i3=0;i3<y1;i3++)
{
c[i1][i2]=c[i1][i2]+a[i1][i3]*b[i3][i2];
}
if (i2==y2-1)
printf("%d\n",c[i1][i2]);
else
printf("%d ",c[i1][i2]);
}
}
}
void main()
{
	int a[100][100],b[100][100],c[100][100]={0},x1,y1,x2,y2,i,j,k;
	scanf("%d%d",&x1,&y1);
	for (i=0;i<=x1-1;i++)
		for (j=0;j<=y1-1;j++)
			scanf("%d",&a[i][j]);
	scanf("%d%d",&x2,&y2);
	for (i=0;i<=x2-1;i++)
		for (j=0;j<=y2-1;j++)
			scanf("%d",&b[i][j]);
	for (i=0;i<=x1-1;i++)
		for (j=0;j<=y2-1;j++)
			for (k=0;k<=x2-1;k++)
				c[i][j]+=a[i][k]*b[k][j];
	for (i=0;i<=x1-1;i++)
	{
		for (j=0;j<=y2-2;j++)
			printf("%d ",c[i][j]);
		printf("%d",c[i][y2-1]);
		putchar(10);
	}
}
main()
{
      int x1,x2,y1,y2,i,j,k;
      scanf("%d %d",&x1,&y1); 
      int a[100][100];
      for(i=0;i<=x1-1;i++)
      for(j=0;j<=y1-1;j++)
      scanf("%d",&a[i][j]);
      scanf("%d %d",&x2,&y2);
      int b[100][100];
      for(i=0;i<=x2-1;i++)
      for(j=0;j<=y2-1;j++)
      scanf("%d",&b[i][j]);
      int c[100][100];
      for(i=0;i<=x1-1;i++)
      for(j=0;j<=y2-1;j++)
      for(k=0;k<=y1-1;k++)
      c[i][j]+=a[i][k]*b[k][j];
      for(i=0;i<=x1-1;i++)
      for(j=0;j<=y2-1;j++)
      {      
             printf("%d",c[i][j]);
             if(j!=(y2-1))
             printf(" ");
             if(j==(y2-1)&&i!=(x1-1))
             printf("\n");
      }
}
int main()
{
    int m,n,p,i,j,k;
    int a[101][101],b[101][101],c[101][101];
    
    scanf("%d%d",&m,&n);
    for(i=1;i<=m;i++)
       for(j=1;j<=n;j++)
          scanf("%d",&a[i][j]);
    
    scanf("%d%d",&n,&p);   
    for(i=1;i<=n;i++)
       for(j=1;j<=p;j++)
          scanf("%d",&b[i][j]);
    
    for(i=1;i<=m;i++)
       for(j=1;j<=p;j++)
       {
          c[i][j]=0;
          for(k=1;k<=n;k++)
             c[i][j]+=a[i][k]*b[k][j];
       } 
    
    for(i=1;i<=m;i++)
    {
       for(j=1;j<p;j++)
          printf("%d ",c[i][j]);
        printf("%d\n",c[i][p]);   
    }   
    
    return 0;
}
int main()
{
    int a[100][100];
    int b[100][100];
    int c[100][100];
    int x1,y1,x2,y2,i,j,m,n1,n2;
    int sum;
    scanf("%d %d",&x1,&y1);
    for(i=0;i<x1;i++)

    {
                     
                     for(j=0;j<y1;j++)
                     {
                                      scanf("%d",&a[i][j]);
                     }
    }
    scanf("%d %d",&x2,&y2);
    for(i=0;i<x2;i++)
    {
                     for(j=0;j<y2;j++)
                     {
                                      scanf("%d",&b[i][j]);
                     }
    }
    for(i=0;i<x1;i++)
    {
                     for(j=0;j<y2;j++)
                     {
                                      sum=0;
                                      for(m=0;m<y1;m++)
                                      {
                                                       n1=a[i][m];
                                                       n2=b[m][j];
                                                      sum=sum+(n1*n2);                 
                                      }
                                      c[i][j]=sum;
                     }
    }
    for(i=0;i<x1;i++)
    {
                     printf("%d",c[i][0]);   
                     for(j=1;j<y2;j++)
                     {
                                      printf(" %d",c[i][j]);                 
                     }
                     printf("\n");              
    }
}
int main()
{
	int x1, y1, x2, y2, i, j, k;
	int ju1[101][101], ju2[101][101], ans[101][101] = {0};
	cin >> x1 >> y1;
	for( i = 0; i < x1; i ++ )
	{
		for( j = 0; j < y1; j ++ )
		{
			cin >> ju1[i][j];
		}
	}
	cin >> x2 >> y2;
	for( i = 0; i < x2; i ++ )
	{
		for( j = 0; j < y2; j ++ )
		{
			cin >> ju2[i][j];
		}
	}
	for( i = 0; i < x1; i ++ )
	{
		for( j = 0; j < y2; j ++ )
		{
			for( k = 0; k < y1; k ++ )
			{
				ans[i][j] = ans[i][j] + ju1[i][k] * ju2[k][j];
			}
		}
	}
	for( i = 0; i < x1; i ++ )
	{
		for( j = 0; j < y2; j ++ )
		{
			if( j == y2 - 1)
				cout << ans[i][j] << endl;
			else
				cout << ans[i][j] << " ";
		}
	}
	return 0;
}
void input(int a[][100],int x,int y)
{
	int i,j;
	for(i=0;i<x;i++)
		for(j=0;j<y;j++)
			scanf("%d",*(a+i)+j);
}

void mult(int a[][100],int b[][100],int m, int n,int q)
{
	int i,j,k,t;
	for(i=0;i<m;i++)
		for(j=0;j<n;j++)
		{
			t=0;
			for(k=0;k<q;k++)
				t+=a[i][k]*b[k][j];
			if(j==n-1) printf("%d\n",t);
			else printf("%d ",t);
		}	
}

main()
{
	int a[100][100],b[100][100],x1,y1,x2,y2;
	scanf("%d%d",&x1,&y1);
	input(a,x1,y1);
	scanf("%d%d",&x2,&y2);
	input(b,x2,y2);
	mult(a,b,x1,y2,y1);
}
int g_arrayA[1024][1024];
int g_arrayB[1024][1024];


int main()
{
    int m, n, n1, k;
    cin >> m >> n;
    for (int i = 0; i < m; ++i)
    {
        for (int j = 0; j < n; ++j)
            cin >> g_arrayA[i][j];
    }
    cin >> n1 >> k;
    for (int i = 0; i < n1; ++i)
    {
        for (int j = 0; j < k; ++j)
            cin >> g_arrayB[i][j];
    }
    for (int i = 0; i < m; ++i)
    {
        for (int j = 0; j < k; ++j)
        {
            int result = 0;
            for (int t = 0; t < n; ++t)
                result += g_arrayA[i][t] * g_arrayB[t][j];
            if (j == 0)
                cout << result;
            else
                cout << " " << result;
        }
        cout << endl;
    }
}
void main()
{
	int a[100][100],b[100][100],c[100][100]={0},x1,y1,x2,y2,t;
 int i,j;
 scanf("%d%d",&x1,&y1);
 for(i=0;i<x1;i++){
  for(j=0;j<y1;j++){
   scanf("%d",&a[i][j]);
}
} 
 scanf("%d%d",&x2,&y2);
 for(i=0;i<x2;i++){
  for(j=0;j<y2;j++){
   scanf("%d",&b[i][j]);
}
}
 for(i=0;i<x1;i++){
  for(j=0;j<y2;j++){
   for(t=0;t<y1;t++)
   {
   c[i][j]=c[i][j]+a[i][t]*b[t][j];
   }
}
}
  for(i=0;i<x1;i++){
  for(j=0;j<y2;j++){
	 if(j!=y2-1)printf("%d ",c[i][j]);
     else printf("%d\n",c[i][j]);
	 }
  }
}
int main()
{
	int a[100][100], b[100][100], c[100][100] = {0},x1, x2, y1, y2, i ,j, k;
	cin >> x1 >> y1;
	for(i = 0 ; i < x1 ; i ++)
	{
		for(j = 0 ; j < y1 ; j ++)
		{
			cin >> a[i][j];
		}
	}
	cin >> x2 >> y2;
	for(i = 0 ; i < x2 ; i ++)
	{
		for(j = 0 ; j < y2 ; j ++)
		{
			cin >> b[i][j];
		}
	}
	for(i = 0 ; i < x1 ; i ++)
	{
		for(j = 0 ; j < y2 ; j ++)
		{
			for(k = 0 ; k < y1 ; k ++)
			{
				c[i][j] += a[i][k] * b[k][j];
			}
			if(j != 0)
				cout << " ";
			cout << c[i][j];
		}
		cout << endl;
	}
	return 0;
}
int main()
{
    int a[200][200],b[200][200],c[200][200] = {0},x1,y1,x2,y2,i,j,k;
    cin >> x1 >> y1;
    for (i = 1;i <= x1;i++)
        for (j = 1;j <= y1;j++)
        {
            cin >> a[i][j];
        }
    cin >> x2 >> y2;
    for (i = 1;i <= x2;i++)
        for (j = 1;j <= y2;j++)
        {
            cin >> b[i][j];
        }
    for (i = 1;i <= x1;i++)
        for (j = 1;j <= y2;j++)
            for (k = 1;k <= y1;k++)
            {
                c[i][j] += a[i][k] * b[k][j];
            }
    for (i = 1;i <= x1;i++)
        for (j = 1;j <= y2;j++)
        {
            if (y2 != 1)
            {
                   if (j == 1)
                   cout << c[i][j];
                   else if (j != y2)
                   cout << " " << c[i][j];
                   else
                   cout << " " << c[i][j] << endl;
            }
            else
            cout << c[i][j] << endl;
        }
    
    return 0;
}
int main()
{
        int a[100][100],b[100][100],c[100][100],i,j,x1,y1,x2,y2,k;
    scanf("%d%d",&x1,&y1);
    for(i=0;i<=x1-1;i++)
      for(j=0;j<=y1-1;j++)
      {
        scanf("%d",&a[i][j]);
      }
    scanf("%d%d",&x2,&y2);
     for(i=0;i<=x2-1;i++)
      for(j=0;j<=y2-1;j++)
      {
        scanf("%d",&b[i][j]);
      }
      for(i=0;i<=x1-1;i++)
      for(j=0;j<=y2-1;j++)
      {
        c[i][j]=0;
      }
     for(i=0;i<=x1-1;i++)
      for(j=0;j<=y2-1;j++)
      {
        for(k=0;k<=x2-1;k++)
        {
          c[i][j]=c[i][j]+a[i][k]*b[k][j];
        }
      } 
      for(i=0;i<=x1-1;i++)
      {
        for(j=0;j<=y2-2;j++)
       {
        printf("%d ",c[i][j]);
       }
        printf("%d\n",c[i][y2-1]);
      }
}
main()
{
      int n,m;
      int n1,m1;
      scanf("%d%d",&n,&m);
      int a[n][m];
      for(int i=0;i<n;i++)
      for(int j=0;j<m;j++)
      {
              scanf("%d",&a[i][j]);
      }
      scanf("%d%d",&n1,&m1);
      int b[n1][m1];
      for(int i=0;i<n1;i++)
      for(int j=0;j<m1;j++)
      {
              scanf("%d",&b[i][j]);
      }
      int c[n][m1];
      for(int i=0;i<n;i++)
      for(int j=0;j<m1;j++)
      {
              c[i][j]=0;
      }
      int g,q;
      for(int i=0;i<n;i++)
      for(int j=0;j<m1;j++)
      {
              for(int x=0;x<m;x++)
              {
                      c[i][j]+=a[i][x]*b[x][j];
                      g=c[i][j];
                      q=a[i][x]*b[x][j];
              }
      }
      int count=0;
      for(int i=0;i<n;i++)
      for(int j=0;j<m1;j++)
      {
              if(!count)
              printf("%d",c[i][j]);
              else
              printf(" %d",c[i][j]);
              count=1;
              if(j==m1-1)
              {
                         printf("\n");
                         count=0;
              }
      }
}
main()
{
   int x1,y1,x2,y2,i,j,k,s;
   scanf("%d %d",&x1,&y1);
   int*p=(int*)malloc(x1*y1*sizeof(int));
   for(i=0;i<x1*y1;i++)
   {
     scanf("%d",&p[i]);
   }
   scanf("%d %d",&x2,&y2);
   int*q=(int*)malloc(x2*y2*sizeof(int));
   for(i=0;i<x2*y2;i++) 
   {
     scanf("%d",&q[i]);
   } 
   for(i=0;i<x1;i++)
   {
    for(j=0;j<y2;j++) 
    {
       s=0;
       for(k=0;k<y1;k++)
       {
         s=s+p[i*y1+k]*q[k*y2+j];
       }
       if(j==0)printf("%d",s);
       else printf(" %d",s);
       if(j==y2-1)printf("\n");
    }
   }
   getchar();
   getchar();
   getchar();
}
int main()
{
	int a[100][100],b[100][100],c[100][100],x1,x2,y1,y2,i,j,k,m;
	scanf("%d %d",&x1,&y1);
	for(i=0;i<x1;i++)
	{
		for(j=0;j<y1;j++)
		{
			scanf("%d",&a[i][j]);
		}
	}
	scanf("%d %d",&x2,&y2);
	for(i=0;i<x2;i++)
	{
		for(j=0;j<y2;j++)
		{
			scanf("%d",&b[i][j]);
		}
	}
	for(i=0;i<x1;i++)
	{
		for(j=0;j<y2;j++)
		{
			c[i][j]=0;
		}
	}
	for(i=0;i<x1;i++)
	{
		for(j=0;j<y2;j++)
		{
			for(m=0;m<y1;m++)
			{
				c[i][j]=c[i][j]+a[i][m]*b[m][j];
			}
		}
	}
	for (i=0;i<x1;i++)
	{
		for(j=0;j<y2-1;j++)
		{
			printf("%d ",c[i][j]);
		}
		printf("%d\n",c[i][y2-1]);
	}
	return 0;
}
int main()
{
	int x1=0,y1=0,x2=0,y2=0;
	int a[100][100],b[100][100],c[100][100]={0};
	int i=0,j=0;
	cin>>x1>>y1;
	for (i=0;i<x1;i++)
	{
		for (j=0;j<y1;j++)
			cin>>a[i][j];
	}
	cin>>x2>>y2;
	for (i=0;i<x2;i++)
	{
		for (j=0;j<y2;j++)
			cin>>b[i][j];
	}
	int n=0;
	for (i=0;i<x1;i++)
	{
		for (j=0;j<y2;j++)
		{
			for (n=0;n<x2;n++)
			c[i][j]=c[i][j]+a[i][n]*b[n][j];
		}
	}
	for (i=0;i<x1;i++)
	{
		for (j=0;j<y2-1;j++)
			cout<<c[i][j]<<" ";
		cout<<c[i][y2-1];
		cout<<endl;
	}
	return 0;
}
int main ()
{
	int a[100][100], b[100][100], c[100][100];
	int x1, y1, x2, y2, i, j, k, l, m, n, h;
	cin >> x1 >> y1;
	for(i = 0; i < x1; i ++)
	{
		for(j = 0; j < y1; j ++)
			cin >> a[i][j];
	}
	cin >> x2 >> y2;
	for(k = 0; k < x2; k ++)
		for(l = 0; l < y2; l ++)
			cin >> b[k][l];
	for(m = 0; m < x1; m ++)
	{
		for(n = 0; n < y2; n ++)
		{
			c[m][n] = 0;
			for(h = 0; h < y1; h ++)
			{
				c[m][n] += a[m][h] * b[h][n];
			}
		}
	}
	for(i = 0; i < x1; i ++)
	{
		cout << c[i][0];
		for(j  = 1; j < y2; j ++)
			cout << " " << c[i][j];
		cout << endl;
	}
	return 0;
}
int main(){
	int x1=0,y1=0,x2=0,y2=0,a[101][101],b[101][101],c[101][101];
	scanf("%d %d\n",&x1,&y1);
	for(int i=1;i<=x1;i++)
		for(int j=1;j<=y1;j++){
			if(j!=y1)
				scanf("%d ",&a[i][j]);
			else
				scanf("%d\n",&a[i][j]);
		}
	scanf("%d %d\n",&x2,&y2);
	for(int i=1;i<=x2;i++)
		for(int j=1;j<=y2;j++){
			if(j!=y2)
				scanf("%d ",&b[i][j]);
			else
				scanf("%d\n",&b[i][j]);
		}
	for(int i=1;i<=x1;i++)
		for(int j=1;j<=y2;j++)
			c[i][j]=0;
	for(int i=1;i<=x1;i++)
		for(int j=1;j<=y2;j++)
			for(int k=1;k<=y1;k++)
				c[i][j]=c[i][j]+a[i][k]*b[k][j];
	for(int i=1;i<=x1;i++)
		for(int j=1;j<=y2;j++)
			if(j!=y2)
				printf("%d ",c[i][j]);
			else
				printf("%d\n",c[i][j]);
	return 0;
}
int main()       //????
{
    int l,m,n;
    int a[110][110];
    int b[110][110];
    int c[110][110];
    cin>>l>>m;
    for (int i=0;i<l;i++)        //?????
    	for (int j=0;j<m;j++)
    		cin>>a[i][j];
    cin>>m>>n;
    for (int i=0;i<m;i++)        //?????
    	for (int j=0;j<n;j++)
    		cin>>b[i][j];
    for (int i=0;i<l;i++)       //???????
    	for (int j=0;j<n;j++)
    	{
    		c[i][j]=0;
    		for (int k=0;k<m;k++)
    			c[i][j]+=a[i][k]*b[k][j];
    		cout<<c[i][j];
    		if (j==n-1) cout<<endl;
    		else cout<<' ';
    	}
	return 0;
}
/**
*@file 1.cpp
*@author ???
*@date 2013-11-06
*@description ????
*/


int main()                                       
{
    int a[110][110], b[110][110], c[110][110], x1, y1, x2, y2;
    int i, j, p;
    cin >> x1 >> y1;
    for(i=1; i<=x1; i++)
    {
        for(j=1; j<=y1; j++)
        {
            cin >> a[i][j];
        }
    }
    cin >> x2 >> y2;
    for(i=1; i<=x2; i++)
    {
        for(j=1; j<=y2; j++)
        {
            cin >> b[i][j];
        }
    }
    for(i=1; i<=x1; i++)
       { for(j=1; j<=y2; j++)
           { for(p=1; p<=x2; p++)
               { c[i][j]+=a[i][p]*b[p][j];}
           }
        }
     for(i=1; i<=x1; i++)
     { 
         for(j=1; j<y2; j++)
         {
             printf("%d ",c[i][j]);
             
          }
             printf("%d\n",c[i][y2]);
     }
     return 0;
}
int main()
{
   int a[100][100],b[100][100],c[100][100], sum=0, k;
   int x1, y1, x2, y2, i, j;
   cin >> x1 >>y1;
   for(i=0;i<x1;i++)
	   for(j=0;j<y1;j++)
	   { cin >> a[i][j];}

   cin >> x2 >>y2;
      for(i=0;i<x2;i++)
	      for(j=0;j<y2;j++)
		    cin >> b[i][j];

	for(i=0;i<x1;i++)
	      for(j=0;j<y2;j++)
		  {
			  for(k=0;k<x2;k++)
				  sum=sum+a[i][k]*b[k][j];
			  c[i][j]=sum;
              sum=0;
		  }
  	for(i=0;i<x1;i++)
	      for(j=0;j<y2;j++)
		  {

			  if(j==0) 
			  {
				  if(y2==1) cout << c[i][j] <<endl;
					else  cout << c[i][j];
			  }
			  else if(j==y2-1)  cout << ' ' << c[i][j] << endl;
			  else  cout << ' '<< c[i][j];		  
		  }


	return 0;
}
int main()
{
  int x1,x2,y1,y2,i,j,p,q;
  int a[100][100],b[100][100],c[100][100]={0};
  cin>>x1>>y1;
  for(i=0;i<x1;i++)
  {  for(p=0;p<y1;p++)
		 cin>>a[i][p];
  }
  cin>>x2>>y2;
  for(q=0;q<x2;q++)
  { for(j=0;j<y2;j++)
		 cin>>b[q][j];
  }
  for(i=0;i<x1;i++)
	  for(j=0;j<y2;j++)
	  {
		  for(p=0;p<y1;p++)
		     c[i][j]+=a[i][p]*b[p][j];
	  }
   for(i=0;i<x1;i++)
   {   cout<<c[i][0];
	   for(j=1;j<y2;j++)
		   cout<<" "<<c[i][j];
	   cout<<endl;
   }
  return 0;                  //?????
}
int main()
{
	int x1,y1,X,Y,i;
	scanf("%d%d",&x1,&y1);
	int a[100][100];
	for(X=0;X<x1;X++)
	{
		for(Y=0;Y<y1;Y++)
		{
			scanf("%d",&a[X][Y]);
		}
	}
	int x2,y2;
	scanf("%d%d",&x2,&y2);
	int b[100][100];
	for(X=0;X<x2;X++)
	{
		for(Y=0;Y<y2;Y++)
		{
			scanf("%d",&b[X][Y]);
		}
	}
	int c[100][100];
		for(X=0;X<100;X++)
	{
		for(Y=0;Y<100;Y++)
		{
			c[X][Y]=0;
		}
	}
	for(X=0;X<x1;X++)
	{
		for(Y=0;Y<y2;Y++)
		{
			for(i=0;i<x2;i++)
			c[X][Y]+=(a[X][i]*b[i][Y]);
		}
	}
	for(X=0;X<x1;X++)
	{
		for(Y=0;Y<y2;Y++)
		{
			if((Y+1)%y2!=0)
				printf("%d ",c[X][Y]);
			else
				printf("%d\n",c[X][Y]);
		}
	}
	return 0;
}
int main(int argc, char* argv[])
{
	int a[100][100],b[100][100];
	int x1,y1,x2,y2,m,n,i,j,p,q,z;
	scanf("%d%d",&x1,&y1);
	for(i=0;i<x1;i++)
		for(j=0;j<y1;j++)
			scanf("%d",&a[i][j]);
	scanf("%d%d",&x2,&y2);
	for(p=0;p<x2;p++)
		for(q=0;q<y2;q++)
			scanf("%d",&b[p][q]);
	int c[100][100];
	int sum;
	for(m=0;m<x1;m++)
	{
		for(n=0;n<y2;n++)
		{
			{   
				sum=0;
				for(z=0;z<y1;z++)
				sum=sum+a[m][z]*b[z][n];
			}
			c[m][n]=sum;
		}
	}
		for(m=0;m<x1;m++)
		{
			printf("%d",c[m][0]);
			for(n=1;n<y2;n++)
			{
				printf(" %d",c[m][n]);
			}
			printf("\n");
		}
	
	
	return 0;
}
//********************************
// ?? ? ????
// ??? 1300012972
// ?? ?  11.12
//********************************



int main()
{
	int a[100][100], b[100][100], c[100][100]={0}, x1, y1, x2, y2, i, j, k;

	cin >> x1 >> y1;

	for (i = 0; i < x1; i++)
		for ( j = 0; j < y1; j++)
			cin >> a[i][j];

	cin >> x2 >> y2;

	for ( i = 0; i < x2; i++)
		for ( j = 0; j < y2; j++)
			cin >> b[i][j];

	for (i = 0; i < x1; i++)
	{
		for (j = 0; j < y2; j++)
		{
			for (k = 0; k < y1; k++)
				c[i][j] += a[i][k] * b[k][j];
			
			if (j == y2 - 1)
				cout << c[i][j] << endl;
			else
				cout << c[i][j] << ' ';
		}
	}

	return 0;
}