import java.util.Scanner;

public class Main {
	
	public static void main(String[] args){
		
		Scanner scan = new Scanner(System.in);
		
		int n = scan.nextInt();
		int m = scan.nextInt();
		int l = scan.nextInt();
		
		//n*m???????????£??\
		int[][]  aryA = new int[n][m];
		for(int ai = 0; ai < n; ai++){
			for(int aj = 0; aj < m; aj++){
				aryA[ai][aj] = scan.nextInt();
			}
		}
		//m*l???????????£??\
		int[][] aryB = new int[m][l];
		for(int bi = 0; bi < m; bi++ ){
			for(int bj = 0; bj < l; bj++){
				aryB[bi][bj] = scan.nextInt();
			}
		}
		scan.close();
		//n*l????????????????????£??\
		long[][] aryC = new long[n][l];
		for(int i = 0; i < n; i++){
			for(int j = 0; j < l; j++){
				for(int k = 0; k < m; k++){
					aryC[i][j] += aryA[i][k] * aryB[k][j]; 					
				}				
			}
		}
		
		//??????
		for(int ci = 0; ci < n; ci++){
		 for(int cj = 0; cj < l; cj++){
			 System.out.print(aryC[ci][cj]);
			 if(cj != l-1){
				 System.out.print(" ");
			 }
		 }
		 System.out.println();
		}
		
	}

} import java.util.Scanner; Scanner java.util public class Main {
	
	public static void main(String[] args){
		
		Scanner scan = new Scanner(System.in);
		
		int n = scan.nextInt();
		int m = scan.nextInt();
		int l = scan.nextInt();
		
		//n*m???????????£??\
		int[][]  aryA = new int[n][m];
		for(int ai = 0; ai < n; ai++){
			for(int aj = 0; aj < m; aj++){
				aryA[ai][aj] = scan.nextInt();
			}
		}
		//m*l???????????£??\
		int[][] aryB = new int[m][l];
		for(int bi = 0; bi < m; bi++ ){
			for(int bj = 0; bj < l; bj++){
				aryB[bi][bj] = scan.nextInt();
			}
		}
		scan.close();
		//n*l????????????????????£??\
		long[][] aryC = new long[n][l];
		for(int i = 0; i < n; i++){
			for(int j = 0; j < l; j++){
				for(int k = 0; k < m; k++){
					aryC[i][j] += aryA[i][k] * aryB[k][j]; 					
				}				
			}
		}
		
		//??????
		for(int ci = 0; ci < n; ci++){
		 for(int cj = 0; cj < l; cj++){
			 System.out.print(aryC[ci][cj]);
			 if(cj != l-1){
				 System.out.print(" ");
			 }
		 }
		 System.out.println();
		}
		
	}

} Main public static void main(String[] args){
		
		Scanner scan = new Scanner(System.in);
		
		int n = scan.nextInt();
		int m = scan.nextInt();
		int l = scan.nextInt();
		
		//n*m???????????£??\
		int[][]  aryA = new int[n][m];
		for(int ai = 0; ai < n; ai++){
			for(int aj = 0; aj < m; aj++){
				aryA[ai][aj] = scan.nextInt();
			}
		}
		//m*l???????????£??\
		int[][] aryB = new int[m][l];
		for(int bi = 0; bi < m; bi++ ){
			for(int bj = 0; bj < l; bj++){
				aryB[bi][bj] = scan.nextInt();
			}
		}
		scan.close();
		//n*l????????????????????£??\
		long[][] aryC = new long[n][l];
		for(int i = 0; i < n; i++){
			for(int j = 0; j < l; j++){
				for(int k = 0; k < m; k++){
					aryC[i][j] += aryA[i][k] * aryB[k][j]; 					
				}				
			}
		}
		
		//??????
		for(int ci = 0; ci < n; ci++){
		 for(int cj = 0; cj < l; cj++){
			 System.out.print(aryC[ci][cj]);
			 if(cj != l-1){
				 System.out.print(" ");
			 }
		 }
		 System.out.println();
		}
		
	} main {
		
		Scanner scan = new Scanner(System.in);
		
		int n = scan.nextInt();
		int m = scan.nextInt();
		int l = scan.nextInt();
		
		//n*m???????????£??\
		int[][]  aryA = new int[n][m];
		for(int ai = 0; ai < n; ai++){
			for(int aj = 0; aj < m; aj++){
				aryA[ai][aj] = scan.nextInt();
			}
		}
		//m*l???????????£??\
		int[][] aryB = new int[m][l];
		for(int bi = 0; bi < m; bi++ ){
			for(int bj = 0; bj < l; bj++){
				aryB[bi][bj] = scan.nextInt();
			}
		}
		scan.close();
		//n*l????????????????????£??\
		long[][] aryC = new long[n][l];
		for(int i = 0; i < n; i++){
			for(int j = 0; j < l; j++){
				for(int k = 0; k < m; k++){
					aryC[i][j] += aryA[i][k] * aryB[k][j]; 					
				}				
			}
		}
		
		//??????
		for(int ci = 0; ci < n; ci++){
		 for(int cj = 0; cj < l; cj++){
			 System.out.print(aryC[ci][cj]);
			 if(cj != l-1){
				 System.out.print(" ");
			 }
		 }
		 System.out.println();
		}
		
	} Scanner scan = new Scanner(System.in); scan new Scanner(System.in) int n = scan.nextInt(); n scan.nextInt() scan.nextInt scan int m = scan.nextInt(); m scan.nextInt() scan.nextInt scan int l = scan.nextInt(); l scan.nextInt() scan.nextInt scan int[][]  aryA = new int[n][m]; aryA new int[n][m] n m for(int ai = 0; ai < n; ai++){
			for(int aj = 0; aj < m; aj++){
				aryA[ai][aj] = scan.nextInt();
			}
		} int ai = 0; int ai = 0; ai 0 ai < n ai n ai++ ai++ ai {
			for(int aj = 0; aj < m; aj++){
				aryA[ai][aj] = scan.nextInt();
			}
		} {
			for(int aj = 0; aj < m; aj++){
				aryA[ai][aj] = scan.nextInt();
			}
		} for(int aj = 0; aj < m; aj++){
				aryA[ai][aj] = scan.nextInt();
			} int aj = 0; int aj = 0; aj 0 aj < m aj m aj++ aj++ aj {
				aryA[ai][aj] = scan.nextInt();
			} {
				aryA[ai][aj] = scan.nextInt();
			} aryA[ai][aj] = scan.nextInt() aryA[ai][aj] aryA[ai] aryA ai aj scan.nextInt() scan.nextInt scan int[][] aryB = new int[m][l]; aryB new int[m][l] m l for(int bi = 0; bi < m; bi++ ){
			for(int bj = 0; bj < l; bj++){
				aryB[bi][bj] = scan.nextInt();
			}
		} int bi = 0; int bi = 0; bi 0 bi < m bi m bi++ bi++ bi {
			for(int bj = 0; bj < l; bj++){
				aryB[bi][bj] = scan.nextInt();
			}
		} {
			for(int bj = 0; bj < l; bj++){
				aryB[bi][bj] = scan.nextInt();
			}
		} for(int bj = 0; bj < l; bj++){
				aryB[bi][bj] = scan.nextInt();
			} int bj = 0; int bj = 0; bj 0 bj < l bj l bj++ bj++ bj {
				aryB[bi][bj] = scan.nextInt();
			} {
				aryB[bi][bj] = scan.nextInt();
			} aryB[bi][bj] = scan.nextInt() aryB[bi][bj] aryB[bi] aryB bi bj scan.nextInt() scan.nextInt scan scan.close() scan.close scan long[][] aryC = new long[n][l]; aryC new long[n][l] n l for(int i = 0; i < n; i++){
			for(int j = 0; j < l; j++){
				for(int k = 0; k < m; k++){
					aryC[i][j] += aryA[i][k] * aryB[k][j]; 					
				}				
			}
		} int i = 0; int i = 0; i 0 i < n i n i++ i++ i {
			for(int j = 0; j < l; j++){
				for(int k = 0; k < m; k++){
					aryC[i][j] += aryA[i][k] * aryB[k][j]; 					
				}				
			}
		} {
			for(int j = 0; j < l; j++){
				for(int k = 0; k < m; k++){
					aryC[i][j] += aryA[i][k] * aryB[k][j]; 					
				}				
			}
		} for(int j = 0; j < l; j++){
				for(int k = 0; k < m; k++){
					aryC[i][j] += aryA[i][k] * aryB[k][j]; 					
				}				
			} int j = 0; int j = 0; j 0 j < l j l j++ j++ j {
				for(int k = 0; k < m; k++){
					aryC[i][j] += aryA[i][k] * aryB[k][j]; 					
				}				
			} {
				for(int k = 0; k < m; k++){
					aryC[i][j] += aryA[i][k] * aryB[k][j]; 					
				}				
			} for(int k = 0; k < m; k++){
					aryC[i][j] += aryA[i][k] * aryB[k][j]; 					
				} int k = 0; int k = 0; k 0 k < m k m k++ k++ k {
					aryC[i][j] += aryA[i][k] * aryB[k][j]; 					
				} {
					aryC[i][j] += aryA[i][k] * aryB[k][j]; 					
				} aryC[i][j] += aryA[i][k] * aryB[k][j] aryC[i][j] aryC[i] aryC i j aryA[i][k] * aryB[k][j] aryA[i][k] aryA[i] aryA i k aryB[k][j] aryB[k] aryB k j for(int ci = 0; ci < n; ci++){
		 for(int cj = 0; cj < l; cj++){
			 System.out.print(aryC[ci][cj]);
			 if(cj != l-1){
				 System.out.print(" ");
			 }
		 }
		 System.out.println();
		} int ci = 0; int ci = 0; ci 0 ci < n ci n ci++ ci++ ci {
		 for(int cj = 0; cj < l; cj++){
			 System.out.print(aryC[ci][cj]);
			 if(cj != l-1){
				 System.out.print(" ");
			 }
		 }
		 System.out.println();
		} {
		 for(int cj = 0; cj < l; cj++){
			 System.out.print(aryC[ci][cj]);
			 if(cj != l-1){
				 System.out.print(" ");
			 }
		 }
		 System.out.println();
		} for(int cj = 0; cj < l; cj++){
			 System.out.print(aryC[ci][cj]);
			 if(cj != l-1){
				 System.out.print(" ");
			 }
		 } int cj = 0; int cj = 0; cj 0 cj < l cj l cj++ cj++ cj {
			 System.out.print(aryC[ci][cj]);
			 if(cj != l-1){
				 System.out.print(" ");
			 }
		 } {
			 System.out.print(aryC[ci][cj]);
			 if(cj != l-1){
				 System.out.print(" ");
			 }
		 } System.out.print(aryC[ci][cj]) System.out.print System.out System System.out aryC[ci][cj] aryC[ci] aryC ci cj if(cj != l-1){
				 System.out.print(" ");
			 } cj != l-1 cj l-1 l 1 {
				 System.out.print(" ");
			 } System.out.print(" ") System.out.print System.out System System.out " " System.out.println() System.out.println System.out System System.out String[] args args public class Main {
	
	public static void main(String[] args){
		
		Scanner scan = new Scanner(System.in);
		
		int n = scan.nextInt();
		int m = scan.nextInt();
		int l = scan.nextInt();
		
		//n*m???????????£??\
		int[][]  aryA = new int[n][m];
		for(int ai = 0; ai < n; ai++){
			for(int aj = 0; aj < m; aj++){
				aryA[ai][aj] = scan.nextInt();
			}
		}
		//m*l???????????£??\
		int[][] aryB = new int[m][l];
		for(int bi = 0; bi < m; bi++ ){
			for(int bj = 0; bj < l; bj++){
				aryB[bi][bj] = scan.nextInt();
			}
		}
		scan.close();
		//n*l????????????????????£??\
		long[][] aryC = new long[n][l];
		for(int i = 0; i < n; i++){
			for(int j = 0; j < l; j++){
				for(int k = 0; k < m; k++){
					aryC[i][j] += aryA[i][k] * aryB[k][j]; 					
				}				
			}
		}
		
		//??????
		for(int ci = 0; ci < n; ci++){
		 for(int cj = 0; cj < l; cj++){
			 System.out.print(aryC[ci][cj]);
			 if(cj != l-1){
				 System.out.print(" ");
			 }
		 }
		 System.out.println();
		}
		
	}

} public class Main {
	
	public static void main(String[] args){
		
		Scanner scan = new Scanner(System.in);
		
		int n = scan.nextInt();
		int m = scan.nextInt();
		int l = scan.nextInt();
		
		//n*m???????????£??\
		int[][]  aryA = new int[n][m];
		for(int ai = 0; ai < n; ai++){
			for(int aj = 0; aj < m; aj++){
				aryA[ai][aj] = scan.nextInt();
			}
		}
		//m*l???????????£??\
		int[][] aryB = new int[m][l];
		for(int bi = 0; bi < m; bi++ ){
			for(int bj = 0; bj < l; bj++){
				aryB[bi][bj] = scan.nextInt();
			}
		}
		scan.close();
		//n*l????????????????????£??\
		long[][] aryC = new long[n][l];
		for(int i = 0; i < n; i++){
			for(int j = 0; j < l; j++){
				for(int k = 0; k < m; k++){
					aryC[i][j] += aryA[i][k] * aryB[k][j]; 					
				}				
			}
		}
		
		//??????
		for(int ci = 0; ci < n; ci++){
		 for(int cj = 0; cj < l; cj++){
			 System.out.print(aryC[ci][cj]);
			 if(cj != l-1){
				 System.out.print(" ");
			 }
		 }
		 System.out.println();
		}
		
	}

} Main
import java.util.Scanner;

public class Main {
	
	public static void main(String[] args){
		
		Scanner scan = new Scanner(System.in);
		
		int n = scan.nextInt();
		int m = scan.nextInt();
		int l = scan.nextInt();
		
		//n*m???????????£??\
		int[][]  aryA = new int[n][m];
		for(int ai = 0; ai < n; ai++){
			for(int aj = 0; aj < m; aj++){
				aryA[ai][aj] = scan.nextInt();
			}
		}
		//m*l???????????£??\
		int[][] aryB = new int[m][l];
		for(int bi = 0; bi < m; bi++ ){
			for(int bj = 0; bj < l; bj++){
				aryB[bi][bj] = scan.nextInt();
			}
		}
		scan.close();
		//n*l????????????????????£??\
		long[][] aryC = new long[n][l];
		for(int i = 0; i < n; i++){
			for(int j = 0; j < l; j++){
				for(int k = 0; k < m; k++){
					aryC[i][j] += aryA[i][k] * aryB[k][j]; 					
				}				
			}
		}
		
		//??????
		for(int ci = 0; ci < n; ci++){
		 for(int cj = 0; cj < l; cj++){
			 System.out.print(aryC[ci][cj]);
			 if(cj != l-1){
				 System.out.print(" ");
			 }
		 }
		 System.out.println();
		}
		
	}

}