import java.io.*;
class Main{
	public static void main(String[]args)throws IOException{
		BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
		int i,j,k;
		String[] nm=br.readLine().split(" ");
		int n=Integer.parseInt(nm[0]);
		int m=Integer.parseInt(nm[1]);
		int l=Integer.parseInt(nm[2]);
		
		int[][] A=new int[n][m];
		int[][] B=new int[m][l];
		long[][] C=new long[n][l];
		
		for(i=0;i<n;i++){
			String[] numA=br.readLine().split(" ");
			for(j=0;j<m;j++){
				A[i][j]=Integer.parseInt(numA[j]);
			}
		}
		for(j=0;j<m;j++){
			String[] numB=br.readLine().split(" ");
			for(k=0;k<l;k++){
				B[j][k]=Integer.parseInt(numB[k]);
				for(i=0;i<n;i++){
					C[i][k]+=(A[i][j])*(B[j][k]);
				}
			}
		}
		for(i=0;i<n;i++){
			for(k=0;k<l;k++){
				System.out.print(C[i][k]);
				if(k==l-1){
					System.out.println();
				}
				else{
					System.out.print(" ");
				}
			}
		}
	}
} import java.io.*; io.* java class Main{
	public static void main(String[]args)throws IOException{
		BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
		int i,j,k;
		String[] nm=br.readLine().split(" ");
		int n=Integer.parseInt(nm[0]);
		int m=Integer.parseInt(nm[1]);
		int l=Integer.parseInt(nm[2]);
		
		int[][] A=new int[n][m];
		int[][] B=new int[m][l];
		long[][] C=new long[n][l];
		
		for(i=0;i<n;i++){
			String[] numA=br.readLine().split(" ");
			for(j=0;j<m;j++){
				A[i][j]=Integer.parseInt(numA[j]);
			}
		}
		for(j=0;j<m;j++){
			String[] numB=br.readLine().split(" ");
			for(k=0;k<l;k++){
				B[j][k]=Integer.parseInt(numB[k]);
				for(i=0;i<n;i++){
					C[i][k]+=(A[i][j])*(B[j][k]);
				}
			}
		}
		for(i=0;i<n;i++){
			for(k=0;k<l;k++){
				System.out.print(C[i][k]);
				if(k==l-1){
					System.out.println();
				}
				else{
					System.out.print(" ");
				}
			}
		}
	}
} Main public static void main(String[]args)throws IOException{
		BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
		int i,j,k;
		String[] nm=br.readLine().split(" ");
		int n=Integer.parseInt(nm[0]);
		int m=Integer.parseInt(nm[1]);
		int l=Integer.parseInt(nm[2]);
		
		int[][] A=new int[n][m];
		int[][] B=new int[m][l];
		long[][] C=new long[n][l];
		
		for(i=0;i<n;i++){
			String[] numA=br.readLine().split(" ");
			for(j=0;j<m;j++){
				A[i][j]=Integer.parseInt(numA[j]);
			}
		}
		for(j=0;j<m;j++){
			String[] numB=br.readLine().split(" ");
			for(k=0;k<l;k++){
				B[j][k]=Integer.parseInt(numB[k]);
				for(i=0;i<n;i++){
					C[i][k]+=(A[i][j])*(B[j][k]);
				}
			}
		}
		for(i=0;i<n;i++){
			for(k=0;k<l;k++){
				System.out.print(C[i][k]);
				if(k==l-1){
					System.out.println();
				}
				else{
					System.out.print(" ");
				}
			}
		}
	} main {
		BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
		int i,j,k;
		String[] nm=br.readLine().split(" ");
		int n=Integer.parseInt(nm[0]);
		int m=Integer.parseInt(nm[1]);
		int l=Integer.parseInt(nm[2]);
		
		int[][] A=new int[n][m];
		int[][] B=new int[m][l];
		long[][] C=new long[n][l];
		
		for(i=0;i<n;i++){
			String[] numA=br.readLine().split(" ");
			for(j=0;j<m;j++){
				A[i][j]=Integer.parseInt(numA[j]);
			}
		}
		for(j=0;j<m;j++){
			String[] numB=br.readLine().split(" ");
			for(k=0;k<l;k++){
				B[j][k]=Integer.parseInt(numB[k]);
				for(i=0;i<n;i++){
					C[i][k]+=(A[i][j])*(B[j][k]);
				}
			}
		}
		for(i=0;i<n;i++){
			for(k=0;k<l;k++){
				System.out.print(C[i][k]);
				if(k==l-1){
					System.out.println();
				}
				else{
					System.out.print(" ");
				}
			}
		}
	} BufferedReader br=new BufferedReader(new InputStreamReader(System.in)); br new BufferedReader(new InputStreamReader(System.in)) int i i j j k; k String[] nm=br.readLine().split(" "); nm br.readLine().split(" ") br.readLine().split br.readLine() br.readLine br " " int n=Integer.parseInt(nm[0]); n Integer.parseInt(nm[0]) Integer.parseInt Integer nm[0] nm 0 int m=Integer.parseInt(nm[1]); m Integer.parseInt(nm[1]) Integer.parseInt Integer nm[1] nm 1 int l=Integer.parseInt(nm[2]); l Integer.parseInt(nm[2]) Integer.parseInt Integer nm[2] nm 2 int[][] A=new int[n][m]; A new int[n][m] n m int[][] B=new int[m][l]; B new int[m][l] m l long[][] C=new long[n][l]; C new long[n][l] n l for(i=0;i<n;i++){
			String[] numA=br.readLine().split(" ");
			for(j=0;j<m;j++){
				A[i][j]=Integer.parseInt(numA[j]);
			}
		} i=0; i=0 i 0 i<n i n i++ i++ i {
			String[] numA=br.readLine().split(" ");
			for(j=0;j<m;j++){
				A[i][j]=Integer.parseInt(numA[j]);
			}
		} {
			String[] numA=br.readLine().split(" ");
			for(j=0;j<m;j++){
				A[i][j]=Integer.parseInt(numA[j]);
			}
		} String[] numA=br.readLine().split(" "); numA br.readLine().split(" ") br.readLine().split br.readLine() br.readLine br " " for(j=0;j<m;j++){
				A[i][j]=Integer.parseInt(numA[j]);
			} j=0; j=0 j 0 j<m j m j++ j++ j {
				A[i][j]=Integer.parseInt(numA[j]);
			} {
				A[i][j]=Integer.parseInt(numA[j]);
			} A[i][j]=Integer.parseInt(numA[j]) A[i][j] A[i] A i j Integer.parseInt(numA[j]) Integer.parseInt Integer numA[j] numA j for(j=0;j<m;j++){
			String[] numB=br.readLine().split(" ");
			for(k=0;k<l;k++){
				B[j][k]=Integer.parseInt(numB[k]);
				for(i=0;i<n;i++){
					C[i][k]+=(A[i][j])*(B[j][k]);
				}
			}
		} j=0; j=0 j 0 j<m j m j++ j++ j {
			String[] numB=br.readLine().split(" ");
			for(k=0;k<l;k++){
				B[j][k]=Integer.parseInt(numB[k]);
				for(i=0;i<n;i++){
					C[i][k]+=(A[i][j])*(B[j][k]);
				}
			}
		} {
			String[] numB=br.readLine().split(" ");
			for(k=0;k<l;k++){
				B[j][k]=Integer.parseInt(numB[k]);
				for(i=0;i<n;i++){
					C[i][k]+=(A[i][j])*(B[j][k]);
				}
			}
		} String[] numB=br.readLine().split(" "); numB br.readLine().split(" ") br.readLine().split br.readLine() br.readLine br " " for(k=0;k<l;k++){
				B[j][k]=Integer.parseInt(numB[k]);
				for(i=0;i<n;i++){
					C[i][k]+=(A[i][j])*(B[j][k]);
				}
			} k=0; k=0 k 0 k<l k l k++ k++ k {
				B[j][k]=Integer.parseInt(numB[k]);
				for(i=0;i<n;i++){
					C[i][k]+=(A[i][j])*(B[j][k]);
				}
			} {
				B[j][k]=Integer.parseInt(numB[k]);
				for(i=0;i<n;i++){
					C[i][k]+=(A[i][j])*(B[j][k]);
				}
			} B[j][k]=Integer.parseInt(numB[k]) B[j][k] B[j] B j k Integer.parseInt(numB[k]) Integer.parseInt Integer numB[k] numB k for(i=0;i<n;i++){
					C[i][k]+=(A[i][j])*(B[j][k]);
				} i=0; i=0 i 0 i<n i n i++ i++ i {
					C[i][k]+=(A[i][j])*(B[j][k]);
				} {
					C[i][k]+=(A[i][j])*(B[j][k]);
				} C[i][k]+=(A[i][j])*(B[j][k]) C[i][k] C[i] C i k (A[i][j])*(B[j][k]) (A[i][j]) A[i] A i j (B[j][k]) B[j] B j k for(i=0;i<n;i++){
			for(k=0;k<l;k++){
				System.out.print(C[i][k]);
				if(k==l-1){
					System.out.println();
				}
				else{
					System.out.print(" ");
				}
			}
		} i=0; i=0 i 0 i<n i n i++ i++ i {
			for(k=0;k<l;k++){
				System.out.print(C[i][k]);
				if(k==l-1){
					System.out.println();
				}
				else{
					System.out.print(" ");
				}
			}
		} {
			for(k=0;k<l;k++){
				System.out.print(C[i][k]);
				if(k==l-1){
					System.out.println();
				}
				else{
					System.out.print(" ");
				}
			}
		} for(k=0;k<l;k++){
				System.out.print(C[i][k]);
				if(k==l-1){
					System.out.println();
				}
				else{
					System.out.print(" ");
				}
			} k=0; k=0 k 0 k<l k l k++ k++ k {
				System.out.print(C[i][k]);
				if(k==l-1){
					System.out.println();
				}
				else{
					System.out.print(" ");
				}
			} {
				System.out.print(C[i][k]);
				if(k==l-1){
					System.out.println();
				}
				else{
					System.out.print(" ");
				}
			} System.out.print(C[i][k]) System.out.print System.out System System.out C[i][k] C[i] C i k if(k==l-1){
					System.out.println();
				}
				else{
					System.out.print(" ");
				} k==l-1 k l-1 l 1 {
					System.out.println();
				} System.out.println() System.out.println System.out System System.out {
					System.out.print(" ");
				} System.out.print(" ") System.out.print System.out System System.out " " String[]args args
import java.io.*;
class Main{
	public static void main(String[]args)throws IOException{
		BufferedReader br=new BufferedReader(new InputStreamReader(System.in));
		int i,j,k;
		String[] nm=br.readLine().split(" ");
		int n=Integer.parseInt(nm[0]);
		int m=Integer.parseInt(nm[1]);
		int l=Integer.parseInt(nm[2]);
		
		int[][] A=new int[n][m];
		int[][] B=new int[m][l];
		long[][] C=new long[n][l];
		
		for(i=0;i<n;i++){
			String[] numA=br.readLine().split(" ");
			for(j=0;j<m;j++){
				A[i][j]=Integer.parseInt(numA[j]);
			}
		}
		for(j=0;j<m;j++){
			String[] numB=br.readLine().split(" ");
			for(k=0;k<l;k++){
				B[j][k]=Integer.parseInt(numB[k]);
				for(i=0;i<n;i++){
					C[i][k]+=(A[i][j])*(B[j][k]);
				}
			}
		}
		for(i=0;i<n;i++){
			for(k=0;k<l;k++){
				System.out.print(C[i][k]);
				if(k==l-1){
					System.out.println();
				}
				else{
					System.out.print(" ");
				}
			}
		}
	}
}