import java.util.Scanner;

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();
    	
    	int[][] Vec_A = new int[n][m];
    	int[][] Vec_B = new int[m][l];
    	long[][] Vec_C = new long[n][l];
    	
    	for(int i = 0; i < n; i++){
    		for(int j = 0; j < m; j++){
        		Vec_A[i][j] = scan.nextInt();
        	}
    	}
    	for(int i = 0; i < m; i++){
    		for(int j = 0; j < l; j++){
        		Vec_B[i][j] = scan.nextInt();
        	}
    	}
    	
    	for(int i = 0; i < n; i++){
    		for(int j = 0; j < l; j++){
    			for(int k = 0; k < m; k++){
            		Vec_C[i][j] += Vec_A[i][k] * Vec_B[k][j]; 
            	}
    			
    			if(j != l - 1){
    				System.out.print(Vec_C[i][j] + " ");
    			}else{
    				System.out.println(Vec_C[i][j]);
    			}
        	}
    	}
    }
    	
} import java.util.Scanner; Scanner java.util 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();
    	
    	int[][] Vec_A = new int[n][m];
    	int[][] Vec_B = new int[m][l];
    	long[][] Vec_C = new long[n][l];
    	
    	for(int i = 0; i < n; i++){
    		for(int j = 0; j < m; j++){
        		Vec_A[i][j] = scan.nextInt();
        	}
    	}
    	for(int i = 0; i < m; i++){
    		for(int j = 0; j < l; j++){
        		Vec_B[i][j] = scan.nextInt();
        	}
    	}
    	
    	for(int i = 0; i < n; i++){
    		for(int j = 0; j < l; j++){
    			for(int k = 0; k < m; k++){
            		Vec_C[i][j] += Vec_A[i][k] * Vec_B[k][j]; 
            	}
    			
    			if(j != l - 1){
    				System.out.print(Vec_C[i][j] + " ");
    			}else{
    				System.out.println(Vec_C[i][j]);
    			}
        	}
    	}
    }
    	
} 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();
    	
    	int[][] Vec_A = new int[n][m];
    	int[][] Vec_B = new int[m][l];
    	long[][] Vec_C = new long[n][l];
    	
    	for(int i = 0; i < n; i++){
    		for(int j = 0; j < m; j++){
        		Vec_A[i][j] = scan.nextInt();
        	}
    	}
    	for(int i = 0; i < m; i++){
    		for(int j = 0; j < l; j++){
        		Vec_B[i][j] = scan.nextInt();
        	}
    	}
    	
    	for(int i = 0; i < n; i++){
    		for(int j = 0; j < l; j++){
    			for(int k = 0; k < m; k++){
            		Vec_C[i][j] += Vec_A[i][k] * Vec_B[k][j]; 
            	}
    			
    			if(j != l - 1){
    				System.out.print(Vec_C[i][j] + " ");
    			}else{
    				System.out.println(Vec_C[i][j]);
    			}
        	}
    	}
    } main {
    	Scanner scan = new Scanner(System.in);
    	int n = scan.nextInt();
    	int m = scan.nextInt();
    	int l = scan.nextInt();
    	
    	int[][] Vec_A = new int[n][m];
    	int[][] Vec_B = new int[m][l];
    	long[][] Vec_C = new long[n][l];
    	
    	for(int i = 0; i < n; i++){
    		for(int j = 0; j < m; j++){
        		Vec_A[i][j] = scan.nextInt();
        	}
    	}
    	for(int i = 0; i < m; i++){
    		for(int j = 0; j < l; j++){
        		Vec_B[i][j] = scan.nextInt();
        	}
    	}
    	
    	for(int i = 0; i < n; i++){
    		for(int j = 0; j < l; j++){
    			for(int k = 0; k < m; k++){
            		Vec_C[i][j] += Vec_A[i][k] * Vec_B[k][j]; 
            	}
    			
    			if(j != l - 1){
    				System.out.print(Vec_C[i][j] + " ");
    			}else{
    				System.out.println(Vec_C[i][j]);
    			}
        	}
    	}
    } 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[][] Vec_A = new int[n][m]; Vec_A new int[n][m] n m int[][] Vec_B = new int[m][l]; Vec_B new int[m][l] m l long[][] Vec_C = new long[n][l]; Vec_C new long[n][l] n l for(int i = 0; i < n; i++){
    		for(int j = 0; j < m; j++){
        		Vec_A[i][j] = scan.nextInt();
        	}
    	} int i = 0; int i = 0; i 0 i < n i n i++ i++ i {
    		for(int j = 0; j < m; j++){
        		Vec_A[i][j] = scan.nextInt();
        	}
    	} {
    		for(int j = 0; j < m; j++){
        		Vec_A[i][j] = scan.nextInt();
        	}
    	} for(int j = 0; j < m; j++){
        		Vec_A[i][j] = scan.nextInt();
        	} int j = 0; int j = 0; j 0 j < m j m j++ j++ j {
        		Vec_A[i][j] = scan.nextInt();
        	} {
        		Vec_A[i][j] = scan.nextInt();
        	} Vec_A[i][j] = scan.nextInt() Vec_A[i][j] Vec_A[i] Vec_A i j scan.nextInt() scan.nextInt scan for(int i = 0; i < m; i++){
    		for(int j = 0; j < l; j++){
        		Vec_B[i][j] = scan.nextInt();
        	}
    	} int i = 0; int i = 0; i 0 i < m i m i++ i++ i {
    		for(int j = 0; j < l; j++){
        		Vec_B[i][j] = scan.nextInt();
        	}
    	} {
    		for(int j = 0; j < l; j++){
        		Vec_B[i][j] = scan.nextInt();
        	}
    	} for(int j = 0; j < l; j++){
        		Vec_B[i][j] = scan.nextInt();
        	} int j = 0; int j = 0; j 0 j < l j l j++ j++ j {
        		Vec_B[i][j] = scan.nextInt();
        	} {
        		Vec_B[i][j] = scan.nextInt();
        	} Vec_B[i][j] = scan.nextInt() Vec_B[i][j] Vec_B[i] Vec_B i j scan.nextInt() scan.nextInt scan for(int i = 0; i < n; i++){
    		for(int j = 0; j < l; j++){
    			for(int k = 0; k < m; k++){
            		Vec_C[i][j] += Vec_A[i][k] * Vec_B[k][j]; 
            	}
    			
    			if(j != l - 1){
    				System.out.print(Vec_C[i][j] + " ");
    			}else{
    				System.out.println(Vec_C[i][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++){
            		Vec_C[i][j] += Vec_A[i][k] * Vec_B[k][j]; 
            	}
    			
    			if(j != l - 1){
    				System.out.print(Vec_C[i][j] + " ");
    			}else{
    				System.out.println(Vec_C[i][j]);
    			}
        	}
    	} {
    		for(int j = 0; j < l; j++){
    			for(int k = 0; k < m; k++){
            		Vec_C[i][j] += Vec_A[i][k] * Vec_B[k][j]; 
            	}
    			
    			if(j != l - 1){
    				System.out.print(Vec_C[i][j] + " ");
    			}else{
    				System.out.println(Vec_C[i][j]);
    			}
        	}
    	} for(int j = 0; j < l; j++){
    			for(int k = 0; k < m; k++){
            		Vec_C[i][j] += Vec_A[i][k] * Vec_B[k][j]; 
            	}
    			
    			if(j != l - 1){
    				System.out.print(Vec_C[i][j] + " ");
    			}else{
    				System.out.println(Vec_C[i][j]);
    			}
        	} int j = 0; int j = 0; j 0 j < l j l j++ j++ j {
    			for(int k = 0; k < m; k++){
            		Vec_C[i][j] += Vec_A[i][k] * Vec_B[k][j]; 
            	}
    			
    			if(j != l - 1){
    				System.out.print(Vec_C[i][j] + " ");
    			}else{
    				System.out.println(Vec_C[i][j]);
    			}
        	} {
    			for(int k = 0; k < m; k++){
            		Vec_C[i][j] += Vec_A[i][k] * Vec_B[k][j]; 
            	}
    			
    			if(j != l - 1){
    				System.out.print(Vec_C[i][j] + " ");
    			}else{
    				System.out.println(Vec_C[i][j]);
    			}
        	} for(int k = 0; k < m; k++){
            		Vec_C[i][j] += Vec_A[i][k] * Vec_B[k][j]; 
            	} int k = 0; int k = 0; k 0 k < m k m k++ k++ k {
            		Vec_C[i][j] += Vec_A[i][k] * Vec_B[k][j]; 
            	} {
            		Vec_C[i][j] += Vec_A[i][k] * Vec_B[k][j]; 
            	} Vec_C[i][j] += Vec_A[i][k] * Vec_B[k][j] Vec_C[i][j] Vec_C[i] Vec_C i j Vec_A[i][k] * Vec_B[k][j] Vec_A[i][k] Vec_A[i] Vec_A i k Vec_B[k][j] Vec_B[k] Vec_B k j if(j != l - 1){
    				System.out.print(Vec_C[i][j] + " ");
    			}else{
    				System.out.println(Vec_C[i][j]);
    			} j != l - 1 j l - 1 l 1 {
    				System.out.print(Vec_C[i][j] + " ");
    			} System.out.print(Vec_C[i][j] + " ") System.out.print System.out System System.out Vec_C[i][j] + " " Vec_C[i][j] Vec_C[i] Vec_C i j " " {
    				System.out.println(Vec_C[i][j]);
    			} System.out.println(Vec_C[i][j]) System.out.println System.out System System.out Vec_C[i][j] Vec_C[i] Vec_C i j String[] args args
import java.util.Scanner;

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();
    	
    	int[][] Vec_A = new int[n][m];
    	int[][] Vec_B = new int[m][l];
    	long[][] Vec_C = new long[n][l];
    	
    	for(int i = 0; i < n; i++){
    		for(int j = 0; j < m; j++){
        		Vec_A[i][j] = scan.nextInt();
        	}
    	}
    	for(int i = 0; i < m; i++){
    		for(int j = 0; j < l; j++){
        		Vec_B[i][j] = scan.nextInt();
        	}
    	}
    	
    	for(int i = 0; i < n; i++){
    		for(int j = 0; j < l; j++){
    			for(int k = 0; k < m; k++){
            		Vec_C[i][j] += Vec_A[i][k] * Vec_B[k][j]; 
            	}
    			
    			if(j != l - 1){
    				System.out.print(Vec_C[i][j] + " ");
    			}else{
    				System.out.println(Vec_C[i][j]);
    			}
        	}
    	}
    }
    	
}