#include<stdio.h>
void multiplyMatrices(int m,int n,int arr1[m][n],int p,int q,int arr2[p][q],int result[m][q])
{
    if(n!=p)
    {
    {printf("Invalid input\n");
    return ;
    }
    for(int i=0;i<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");
            }
        }
    }
    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\n");
                return 0;
            }
        }
    }
    int result[m][q];
    multiplyMatrices(m,n,arr1,p,q,arr2,result);
    return 0;
}