semeru/Code-Code-CloneDetection-POJ104 huggingface dataset:
main()
{
      int a[100][100]={0}, b[100][100]={0};
      int m, n, p, q, j, i, k;
      scanf("%d%d",&m ,&n);
      for(i=0;i<m;i++)
      {
           for(j=0;j<n;j++) 
           {
                scanf("%d",&a[i][j]);
           }
      }
      scanf("%d%d",&p ,&q);
      for(i=0;i<p;i++)
      {
           for(j=0;j<q;j++)
           {
                scanf("%d",&b[i][j]);
           }
      }
      int c[100][100]={0};
      for(i=0;i<m;i++)
      {
           for(j=0;j<q;j++)
           {
                 for(k=0;k<n;k++)
                 {
                       c[i][j]=c[i][j]+a[i][k]*b[k][j];
                 }
           }
      }
      for(i=0;i<m;i++)
      {
           printf("%d",c[i][0]);
           for(j=1;j<q;j++)
           {
                 printf(" %d",c[i][j]);
           }
           printf("\n");
      } 
}
main()
{
      int a[100][100],b[100][100],x1,y1,x2,y2,x3,y3,c,d,e[100][100];
      char i;
      scanf ("%d %d",&x1,&y1);
     
      for (c=0;c<=x1-1;c++)
      {
          for (d=0;d<=y1-1;d++)
          {
          scanf("%d%c",&a[c][d],&i);
          if (i!=' ')
          break;
          else ;
          }
          
      }
       scanf ("%d %d",&x2,&y2);
      for (c=0;c<=x2-1;c++)
      {
          for (d=0;d<=y2-1;d++)
          {
          scanf("%d%c",&b[c][d],&i);
          if (i!=' ')
          break;
          else ;
          }
          
      }
      x3=x1;
      y3=y2;
     // printf("%d\n",a[0][4]);
      for (c=0;c<=x3-1;c++)
      {
          for (d=0;d<=y3-1;d++)
          {
          e[c][d]=0;
          for (i=0;i<=x2-1;i++)
          {e[c][d]=e[c][d]+a[c][i]*b[i][d];
          //printf("%d %d %d\n",i,c,d);
          //printf("%d %d %d\n",a[c][i],b[i][d],e[c][d]);
          }
          }
          
      }
      for (c=0;c<=x3-1;c++)
      {
          for (d=0;d<=y3-2;d++)
          {
          printf("%d ",e[c][d]);
          }
      printf("%d\n",e[c][y3-1]);
      }
      //printf("%d",e[0][1]);
      
     }
int main()
{
	int a[105][105],b[105][105],c[105][105],x1,y1,x2,y2,i,j,k,sum=0;
	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(k=0;k<x2;k++)
			{
				sum=sum+a[i][k]*b[k][j];
			}
			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");
	}
	return 0;
}
main()
{
	int a[100][100],b[100][100],c[100][100];
	int i,j,k,t,p,x1,x2,y1,y2;
	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]);
	}
	p=y1<x2?y1:x2;
	for(i=0;i<x1;i++)
	{
		for(j=0;j<y2;j++)
		{
			for(k=0;k<p;k++)
			{
				c[i][j]=c[i][j]+a[i][k]*b[k][j];
			}
		}
	}
	 for(i=0;i<x1;i++)
	{
		for(j=0;j<y2;j++)
		{if(j==0)printf("%d",c[i][j]);else printf(" %d",c[i][j]);}
		printf("\n");
	}
	
}
void main()
{
int x1,x2,y1,y2,m, a[100][100],b[100][100],i,j,c[100][100]={0};
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(m=0;m<x2;m++)
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]);
}
}
int main()
{
    int matrix1[100][100], matrix2[100][100], matrix[100][100], x1, y1, x2, y2;
    int i, j, k;
    
    memset(matrix, 0, sizeof(matrix));
        
    cin >> x1 >> y1;
    
    for(i = 0; i < x1; i++)
    {
        for(j = 0; j < y1; j++)
        cin >> matrix1[i][j];
    }
    
    cin >> x2 >> y2;
    
    for(i = 0; i < x2; i++)
    {
        for(j = 0; j < y2; j++)
        cin >> matrix2[i][j];
    }
    
    for(i = 0; i < x1; i++)
    {
        for(j = 0; j < y2; j++)
        {
            for(k = 0; k < y1; k++)
            {
                matrix[i][j] += matrix1[i][k] * matrix2[k][j];
            }
        }
    }
    
    for(i = 0; i < x1; i++)
    {
        for(j = 0; j < y2 - 1; j++)
        {
            cout << matrix[i][j] << " ";
        }
        cout << matrix[i][j] << endl;
    }

    return 0;
}
main()
{
      int x1,y1,x2,y2,a[100][100],b[100][100],c[100][100],i,j,k;
      scanf("%d %d",&x1,&y1);
      for(i=0;i<x1;i++)
      {
       for(j=0;j<y1-1;j++)
       scanf("%d ",&a[i][j]);
       scanf("%d",&a[i][j]);
       }
       scanf("%d %d",&x2,&y2);
      for(i=0;i<x2;i++)
      {
       for(j=0;j<y2-1;j++)
       scanf("%d ",&b[i][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(k=0;k<y1;k++)
         c[i][j]=c[i][j]+a[i][k]*b[k][j];
       for(i=0;i<x1;i++)
       {
        for(j=0;j<y2-1;j++)
        printf("%d ",c[i][j]);
        printf("%d\n",c[i][j]);
        }
        }
main()
{
	int m ;int n;
	scanf("%d %d",&m,&n);
	int a[120][120];
	for (int i=0;i<=m-1;i++)
		for (int j=0;j<=n-1;j++)
		scanf ("%d",&a[i][j]);
	int p,q;
	scanf ("%d %d",&p,&q);
	int b[120][120];
	for (int c=0;c<=p-1;c++)
		for (int d=0;d <=q-1;d++)
		scanf ("%d",&b[c][d]);
	int e[120][120];
	for (int f=0;f<=m-1;f++)
		for (int g=0;g<=q-1;g++)
		{
			e[f][g]=0;
			for(int h=0;h<=n-1;h++)
			e[f][g]=e[f][g]+ a[f][h]*b[h][g]; 
		} 
	for (int k=0;k<=m-1;k++)
		{
		 for (int l=0;l<= q-2;l++)
		 printf ("%d ",e[k][l]);
		 printf ("%d\n",e[k][q-1]);	
	    }
}
/********************************************************************
	file base:	main
	file ext:	cpp
	author:		cromwell
	
	purpose:	matrix multiplication
*********************************************************************/


int main()
{
	int x[2],y[2];
	int Matrix[2][100][100],answer[100][100];
	//input
	for (int i=1;i<=2;i++)
	{
		cin>>x[i-1]>>y[i-1];
		for (int j=1;j<=x[i-1];j++)
		{
			for (int k=1;k<=y[i-1];k++)
			{
				cin>>Matrix[i-1][j-1][k-1];
			}
		}

	}
	//multiply

	for (int row=1;row<=x[0];row++)
	{
		for (int column=1;column<=y[1];column++)
		{
			answer[row-1][column-1]=0;

			for (int i=1;i<=y[0];i++)			
				answer[row-1][column-1]+=Matrix[0][row-1][i-1]*Matrix[1][i-1][column-1];

			if (column==y[1])
				cout<<answer[row-1][column-1];
			else
				cout<<answer[row-1][column-1]<<' ';
		}
		cout<<endl;
	}

	return 0;

};
int a[m][m], b[m][m], c[m][m];

int main ( )
{
	int x1, y1, x2, y2;
	cin >> x1 >> y1;
	for ( int i = 1; i <= x1; i ++ )
		for ( int j = 1; j <= y1; j ++ )
			cin >> a[i][j];
	cin >> x2 >> y2;
	for ( int i = 1; i <= x2; i ++ )
		for ( int j = 1; j <= y2; j ++ )
			cin >> b[i][j];

	for ( int i = 1; i <= x1; i ++ )
	{
		for ( int j = 1; j <= y2; j ++ )
		{
			int t = 0;
			for ( int k = 1; k <= y1; k ++ )
				t += a[i][k] * b[k][j];
			c[i][j] = t;
		}
	}

	for ( int i = 1; i <= x1; i ++ )
	{
		for ( int j = 1; j <= y2; j ++ )
		{
			if ( j != 1 )
				cout << ' ';
			cout << c[i][j];
		}
		cout << endl;
	}
	return 0;
}
main()
{
      int x1,y1,x2,y2,i,h,j;
      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]);}
      int* m=(int*)malloc(x1*y2*sizeof(int));
      for(i=0;i<(x1*y2);i++)
      {m[i]=0;}
      
      for(h=0;h<x1;h++)
      {
          for(j=0;j<y2;j++)
          {
              if(j==(y2-1))
              {
              for(i=0;i<y1;i++)
              {m[h*y2+j]+=p[h*y1+i]*q[i*y2+j];}
               printf("%d",m[h*y2+j]);
              }
              else
              { 
                 for(i=0;i<y1;i++)
               {m[h*y2+j]+=p[h*y1+i]*q[i*y2+j];}
              printf("%d ",m[h*y2+j]);
               }
            
          }
          printf("\n");
      }
      
      getchar();
      getchar();
      free(p);free(q);free(m);
      
}
int main()
{
	int a[100][100], b[100][100], c[100][100];
	int i, j, k, x1, y1, x2, y2;

	cin >> x1 >> y1;
	memset(c, 0, sizeof(c));
    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];
			cout << c[i][j];
			if(j != y2 - 1)
				cout << " ";
			else
				cout << endl;
        }
        return 0;
}
void main()
{
	int a[200][200],b[200][200],c[200][200]={{0}},i,j,temp=0,x1,x2,y1,y2,count,q;
	scanf("%d %d",&x1,&y1);
	count=0;
	for(i=0;i<=x1-1;i++)
	{
		for(j=0;j<=y1-1;j++)
		{
			scanf("%d",&temp);
			a[i][j]=temp;
		}
	}
    

	scanf("%d %d",&x2,&y2);
	for(i=0;i<=x2-1;i++)
	{
		for(j=0;j<=y2-1;j++)
		{
			scanf("%d",&temp);
			b[i][j]=temp;			
		}
	}

	i=0;
	j=0;
	while(i<=x1-1)
	{		
		while(j<=y2-1)
		{
			for(q=0;q<=y1-1;q++)
				count=count+a[i][q]*b[q][j];
			c[i][j]=count;
			count=0;
			j++;
		}
		i++;
		j=0;
	}
	for(i=0;i<=x1-1;i++)
	{
		for(j=0;j<=y2-1;j++)
		{
			if(j<y2-1)
				printf("%d ",c[i][j]);
			else if(j==(y2-1))
				printf("%d\n",c[i][j]);
		}
	}
}
int main()
{
 int x1,y1,x2,y2,a[100][100],b[100][100],c[100][100];
 cin>>x1>>y1;
 cout<<endl;
 for(int i=0;i<x1;i++)
 {
  for(int j=0;j<y1;j++)
   {
     cin>>a[i][j];}
  cout<<endl;
 }
  cin>>x2>>y2;
   cout<<endl;
 for(int i=0;i<x2;i++)
 {
  for(int j=0;j<y2;j++)
   {
     cin>>b[i][j];}
  cout<<endl;
 }
 for(int i=0;i<x1;i++)
 {
  for(int j=0;j<y2;j++)
   {
     c[i][j]=0;}
 }
for(int i=0;i<x1;i++)
 {
  for(int j=0;j<y2;j++)
   {
    for(int k=0;k<x2;k++)
     c[i][j]+=a[i][k]*b[k][j];
   }
  }
for(int i=0;i<x1;i++)
 {
  for(int 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],i=0,j=0,n=0;
    int x1,y1,x2,y2;
    
    
    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++)
         {c[i][j]=0;
         
          for(n=0;n<y1;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][j];
         cout<<endl;}
          return 0;
       }
int main()
{
	int a[500][500],b[500][500],c[500][500];
	int h,j,k,x1,y1,x2,y2;
	
	scanf("%d %d",&x1,&y1);
	for(h=0;h<x1;h++)
	{
		for(j=0;j<y1;j++)
		scanf("%d",&a[h][j]);
	}
	scanf("%d %d",&x2,&y2);
	for(h=0;h<x2;h++)
	{
		for(j=0;j<y2;j++)
		scanf("%d",&b[h][j]);
	}
	for(h=0;h<x1;h++)
	{
		for(j=0;j<y2;j++)
		{
			c[h][j]=0;
			for(k=0;k<y1;k++)
			{c[h][j]=c[h][j]+a[h][k]*b[k][j];}
			if(j==y2-1)
			printf("%d\n",c[h][j]);
			else
			printf("%d ",c[h][j]);
		}
	}
}
int main()
{
    int x1 , x2 , y1 , y2 ;
    int i , j , k ;
    int a[100][100] , b[100][100] , c[100][100] ;
    cin >> x1 >> y1 ;
    for( i = 0 ; i <= x1 - 1 ; i ++ )
         for( j = 0 ; j <= y1 - 1 ; j ++ )
              cin >> a[i][j] ;
    cin >> x2 >> y2 ;
    for( i = 0 ; i <= x2 - 1 ; i ++ )
         for( j = 0 ; j <= y2 - 1 ; j ++ )
              cin >> 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 <= 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 - 1 ; j ++ )
         {
              if( j != 0 )
              cout << " " ;
              cout << c[i][j] ;
              if( j == y2 - 1 )
              cout << endl ;
         }   
return 0 ;
}
main()
{
    int x,y,q;
    int a[100][100],b[100][100],c[100][100];
    scanf("%d%d",&x,&q);

    for (int i = 0;i < x;i ++)
        for (int j = 0;j < q;j ++)
            scanf("%d",&a[i][j]);
    scanf("%d%d",&q,&y);

    for (int i = 0;i < q;i ++)
        for (int j = 0;j < y;j ++)
            scanf("%d",&b[i][j]);
    for (int i = 0;i < x;i ++)
        for (int j = 0;j < y;j ++)
        {
            c[i][j]=0;
            for (int s = 0;s < q;s ++)
                c[i][j]=c[i][j]+a[i][s]*b[s][j];
        }
    for (int i = 0;i < x;i ++)
    {
        for (int j = 0;j < y;j ++)
        {
            if (j == 0)
                printf("%d",c[i][j]);
            else
                printf(" %d",c[i][j]);
        }
        printf("\n");
    }
}
int main(){                  //???
	int x1,x2,y1,y2;          //??????????????????
	cin>>x1>>y1;             //??????????
	int a[x1][y1];           //?????????????
	for(int i=0;i<x1;i++)     //??
		for(int j=0;j<y1;j++)
			cin>>a[i][j];
	cin>>x2>>y2;             //??????????
	int b[x2][y2];           //?????????????
	for(int i=0;i<x2;i++)     //??
		for(int j=0;j<y2;j++)
			cin>>b[i][j];
	int c[x1][y2];             //????????????
	for(int i=0;i<x1;i++)     //?????????
		for(int j=0;j<y2;j++)
			c[i][j]=0;
	for(int i=0;i<x1;i++)     //??????
		for(int j=0;j<y2;j++)
			for(int k=0;k<x2;k++)
				c[i][j]+=a[i][k]*b[k][j];
	for(int i=0;i<x1;i++)     //??????
		for(int j=0;j<y2;j++)
			if(j!=y2-1)cout<<c[i][j]<<' ';
			else cout<<c[i][j]<<endl;
	return 0;                 //?????????????????
}
/**  
* @file ????  .cpp  
* @author ??? 
* @date   2013-11-01  * @description 
*          ??????:????   */ 
int main ()
{
	int a[101][101],b[101][101],c[101][101];
	int x1,y1,x2,y2,number;
	cin>>x1>>y1;
	for(int i=0;i<x1;i++)
	{
		for (int j=0;j<y1;j++)
		{
			cin>>number;
			a[i][j]=number;
		}
	}
	cin>>x2>>y2;
	for(int i=0;i<x2;i++)
	{
		for (int j=0;j<y2;j++)
		{
			cin>>number;
			b[i][j]=number;
		}
	}
	for(int i=0;i<x1;i++)
	{
		for(int j=0;j<y2;j++)
		{
			int sum=0 ;
			for(int k=0;k<y1;k++)
			{
				sum=sum+a[i][k]*b[k][j] ;
			}
			c[i][j]=sum;
			if(j==(y2-1))
				cout<<c[i][j];
			else
				cout<<c[i][j]<<" ";
		}
		cout << endl;

	}
	return 0 ;
}
main(){
	int x1,y1,x2,y2,a[100][100]={0},b[100][100]={0},c[100][100]={0},p,q,t;
	scanf("%d%d",&x1,&y1);
	for(p=0;p<x1;p++){
		for(q=0;q<y1;q++){
			scanf("%d",&a[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(p=0;p<x1;p++){
		for(q=0;q<y2;q++){
			for(t=0;t<y1;t++){
				c[p][q]+=a[p][t]*b[t][q];
			}
		}
	}
	for(p=0;p<x1;p++){
		t=0;
		for(q=0;q<y2;q++){
			if(t)printf(" ");
			printf("%d",c[p][q]);
			t=1;
		}
		printf("\n");
	}
	return 0;
}
int main()
{                                             
    int x1,y1,x2,y2,i,j,k;
	int a[100][100],b[100][100],c[100][100];//??????
	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++)
		{ c[i][j]=0;
			for(k=0;k<x2;k++)
				c[i][j]=c[i][j]+a[i][k]*b[k][j];//????????????
		}
    i=0;
	while(i<x1)
	{
		for(j=0;j<y2-1;j++)
			cout<<c[i][j]<<" ";
		cout<<c[i][y2-1]<<endl;//????
		i++;
	}
	return 0;
}
main()
{
      int i,j,k,x1,y1,x2,y2,s;
      s=0;
      int *a=NULL;
      int *b=NULL;
      int *c=NULL;
      
      scanf("%d %d",&x1,&y1);
      a=(int *)malloc(x1*y1*sizeof(int));
      for(i=0;i<x1;i++)
      {
                       for(j=0;j<y1;j++)
                       {
                                        scanf("%d",&a[i*y1+j]);
                                        }
                                        }
        scanf("%d %d",&x2,&y2);
      b=(int *)malloc(x2*y2*sizeof(int));
      for(i=0;i<x2;i++)
      {
                       for(j=0;j<y2;j++)
                       {
                                        scanf("%d",&b[i*y2+j]);
                                        }
                                        }
                    c=(int *)malloc(x1*y2*sizeof(int));
                     for(i=0;i<x1;i++)
                     {
                                      for(j=0;j<=y2;j++)
                                      {
                                                    s=0;    
                                          for(k=0;k<y1;k++)
                                          {
                                                           s=s+a[i*y1+k]*b[k*y2+j];
                                                           }
                                                          
                                                           
                                                c[i*y2+j]=s; 
                                                }
                                                }
     for(i=0;i<x1;i++)
	{
		
		for(j=0;j<y2-1;j++)
		{
			printf("%d ",c[i*y2+j]);
		}
		printf("%d",c[i*y2+j]);
		printf("\n");
	
	}  
                                              
                                                
                                                
                                                }
int main()
{
    int a[101][101],b[101][101],c[101][101],i,j,k,x1,x2,y1,y2;
    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]=c[i][j]+a[i][k]*b[k][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;
	   }
	   cin.get();cin.get();cin.get();
	return 0;
}
int main()
{
int x1,x2,y1,y2,i,j,k,l,m,n,o,p,q;
scanf("%d %d",&x1,&y1);
int a[x1][y1];
for(i=0;i<x1;i++)
{for(j=0;j<y1;j++)
{scanf("%d",&a[i][j]);}}
scanf("%d %d",&x2,&y2);
int b[x2][y2];
for(i=0;i<x2;i++)
{for(j=0;j<y2;j++)
{scanf("%d",&b[i][j]);}}
int c[x1][y2];
for(i=0;i<x1;i++)
{
 c[i][0]=0;
 for(q=0;q<x2;q++)
 {
 c[i][0]=c[i][0]+a[i][q]*b[q][0];
 }
 printf("%d",c[i][0]);
 for(j=1;j<y2;j++)
 {
 c[i][j]=0;
 for(q=0;q<x2;q++)
  {
  c[i][j]=c[i][j]+a[i][q]*b[q][j];
  }
  printf(" %d",c[i][j]);
 }
 printf("\n");
}
}
int main()
{
	int m,n,q;
	int i,j,k;
	scanf("%d %d\n", &m,&q); 
	int A[100][100]={0};
	for (i=0;i<m;i++)
	{
		for(j=0;j<q;j++)
		scanf("%d",&A[i][j]);
	} 
    scanf("%d %d\n",&q,&n);
	int B[100][100]={0};
	for (i=0;i<q;i++)
	{
		for(j=0;j<n;j++)
		scanf("%d",&B[i][j]);
	}
	int C[100][100]={0};
	for (i=0;i<m;i++)
	{
		for(j=0;j<n;j++)
		for(k=0;k<q;k++)
		{
			C[i][j]=C[i][j]+A[i][k]*B[k][j];
		}
	} 	
	for (i=0;i<m;i++)
	{
		for(j=0;j<n;j++)
		{
		if(j!=n-1) printf("%d ",C[i][j]);
		else printf("%d",C[i][j]);
	    }
	  	printf("\n"); 
	}
}
int main()
{
	int x1,y1,x2,y2,a[101][101],b[101][101],c[101][101],i,j,m;
	cin>>x1>>y1;
	for(i=1;i<=x1;i++){
		for(j=1;j<=y1;j++)
			cin>>a[i][j];//????a
	}
	cin>>x2>>y2;
	for(i=1;i<=x2;i++){
		for(j=1;j<=y2;j++)
			cin>>b[i][j];//????b
	}//C[i][j] = A[i][0]*B[0][j] + A[i][1]*B[1][j] + ..... + A[i][q]*B[q][j]
	for(i=1;i<=x1;i++){
		for(j=1;j<=y2;j++){
			c[i][j]=0;
			for(m=1;m<=y1;m++)
				c[i][j]=a[i][m]*b[m][j]+c[i][j];
		}
	}//???????????
	for(i=1;i<=x1;i++){
		for(j=1;j<y2;j++)
			cout<<c[i][j]<<" ";
		cout<<c[i][y2]<<endl;}//????c
	return 0;
}
main()
{
      int x1,x2,y1,y2,m,s,n;
      scanf("%d %d",&x1,&y1);
      int i[x1][y1];
      for(m=0;m<x1;m++){
      for(s=0;s<y1;s++)
      scanf("%d",&i[m][s]);}
      scanf("%d %d",&x2,&y2);
      int j[x2][y2];
      for(m=0;m<x2;m++){
      for(s=0;s<y2;s++)
      scanf("%d",&j[m][s]);}
      int c[x1][y2];
      for(m=0;m<x1;m++){
      for(s=0;s<y2;s++){
      c[m][s]=0;
      for(n=0;n<y1;n++){
      c[m][s]=c[m][s]+(i[m][n])*(j[n][s]);}
      printf("%d",c[m][s]);
      if(s==(y2-1))printf("\n");
      else printf(" ");
      }}
}
main()
{
    int a[110][110];
    int b[110][110];
    int c[110][110]={{0},{0}};
    int x,y,z,i=0,j=0,k,t;
    scanf("%d %d",&x,&y);
    for(i=0;i<=x-1;i++)
    {
        for(j=0;j<=y-1;j++)
        {
            scanf("%d",&a[i][j]);
        }
    }
    scanf("%d %d",&y,&z);
    for(i=0;i<=y-1;i++)
    {
        for(j=0;j<=z-1;j++)
        {
            scanf("%d",&b[i][j]);
        }
    }
    if(z==1)
    {
        for(i=0;i<=x-1;i++)
        {
            for(j=0;j<=y-1;j++)
            {
                c[i][0]=c[i][0]+a[i][j]*b[j][0];
            }
            printf("%d\n",c[i][0]);
        }
    }
    if(z!=1)
    {
        for(i=0;i<=x-1;i++)
        {
            for(j=0;j<=z-2;j++)
            {
                for(k=0;k<=y-1;k++)
                {
                    c[i][j]=c[i][j]+a[i][k]*b[k][j];
                }
                printf("%d ",c[i][j]);
            }
            if(j==z-1)
            {
                for(t=0;t<=y-1;t++)
                {
                    c[i][j]=c[i][j]+a[i][t]*b[t][j];
                }
                printf("%d\n",c[i][j]);
            }
        }
    }
}
main()
{
int x1,y1,x2,y2,i,j,k,c;
int A[100][100]={0};
int B[100][100]={0};
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=0;
 for(k=0;k<x2;k++)
 c =c + A[i][k]*B[k][j];
 if(j<y2-1)
 printf("%d ",c);
 if(j==y2-1)
 printf("%d\n",c);
}


}
//********************************
//*???????   **
//*?????? 1300012861 **
//*???2013.11.01  **
//********************************
int main()
{
	int a[102][102], b[102][102], c[102][102] = {0}, i, j, k, x1, x2, y1, y2; 
	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++ ) //?????????c??
		{
			for ( k = 0; k < y1; k++ )
			{
				c[i][j] += a[i][k] * b[k][j]; //??????????????????????????? ???????
			}
		}
	}
	for ( i = 0; i < x1; i++ ) //????
	{ 
		for ( j = 0; j < y2 - 1; j++ )
			cout << c[i][j] << " "; 
		cout << c[i][j] << endl; 
	}
	return 0;
}
int main()
{
	int x1,x2,y1,y2;
	int i,j,h;
	int a[N][N],b[N][N],c[N][N]={0};
    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(h=0;h<y1;h++)
			{
				c[i][j]+=a[i][h]*b[h][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;
}
//*************************
//*???????? **
//*?????? **
//*???2012-11-10 **
//*???1200012957 **
//*************************

int main()
{
	int x1, y1, x2, y2, i, j;
	int a[100][100], b[100][100];
	// ???????????????????????????????????~~~
	cin >> x1 >> y1;
	for ( i = 0; i <= x1 - 1; i++ )
	{
		for ( j = 0; j <= y1 - 1; j++ )
		{
			cin >> a[i][j];
		}
	}
	cin >> x2 >> y2;
	for ( i = 0; i <= x2 - 1; i++ )
	{
		for ( j = 0; j <= y2 - 1; j++ )
		{
			cin >> b[i][j];
		}
	}
	// ???????!!!
	int p, q, c[100][100] = {{0, 0}};
	for (i = 0; i <= x1 - 1; i++ )
	{
		for ( p = 0, q = 0;p <= y1 - 1; p++, q++)
		{
			c[i][0] = c[i][0] + a[i][p] * b[q][0];
		}
		cout << c[i][0];
		// ???????????????????????????
		for (j = 1; j <= y2 - 1; j++ )
		{
			for ( p = 0, q = 0;p <= y1 - 1; p++, q++)
			{
				c[i][j] = c[i][j] + a[i][p] * b[q][j];
				// ???????????
			}
			cout << " " << c[i][j];
		}
		cout << endl;
		// ????!
	}

	return 0;
}
int main()
{
	int a[200][200],b[200][200],c[200][200];
	int i,j,t,x1,y1,x2,y2;
	
	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;i++)
	{
		for(j=0;j<y2;j++)
		{
			c[i][j]=0;
			for(t=0;t<y1;t++)
			{c[i][j]=c[i][j]+a[i][t]*b[t][j];}
			if(j==y2-1)
			printf("%d\n",c[i][j]);
			else
			printf("%d ",c[i][j]);
		}
	}
}