#include<stdio.h>
void multiply(int m,int n,int arr1[m][n],int p,int q,int arr[p][q],int result){
if(n!=p){
    printf("Invalid input\n");
    return ;
}
for(int i=0;m;i++){
    for(int j=0;j<q;j++){
        result[i][j]=0;
        for(int k=0;k<n;k++){
            result[i][j]+=arr1[i][k]*arr2[k][j];
        }
    }
}
for(int i=0;i<m;i++){
    for(int j=0;j<q;j++){
        printf("%d "result[i][j]);
    }
    printf("\n");
}
} 
int main(){
  int m,n,p,q;
  if(scanf("%d %d",&m,&n)!=2){
      printf("Invalid input\n");
      return 0;
  }
  int arr1[m][n];
  for(int i=0;i<m;i++){
      for(int j=0;j<n;j++){
          if(scanf("%d",&arr1[i][j])!=1){
              printf("Invalid input\n");
              return 0;
          }
      }
  }
  if(scanf("%d %d",&p,&q)!=2){
      printf("Invalid input\n");
      return 0;
  }
  int arr2[p][q];
  for(int i=0;i<p;i++){
      for(int j=0;j<q;j++){
          if(scanf("%d",&arr2[i][j])!=1){
              printf("Invalid input");
          }
      }
  }
  int result[m][q];
  multiply(m,n,arri,p,q,arr2,result);
  return 0;
 
}