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 [][] detA = new int [n][m];
	    int [][] detB = new int [m][l];
	    long [][] detC = new long [n][l];

	    for(int i = 0 ; i < detA.length ; i++){
	    	for(int j = 0 ; j < detA[i].length ; j++){
	    		detA[i][j] = scan.nextInt();
	    	}
	    }

	    for(int i = 0 ; i < detB.length ; i++){
	    	for(int j = 0 ; j < detB[i].length ; j++){
	    		detB[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++){
	    			detC[i][j] += detA[i][k]*detB[k][j];
	    		}
	    	}
	    }

	    for(int i = 0 ; i < detC.length ; i++){
	    	for(int j = 0 ; j < detC[i].length ; j++){
	    		System.out.print(detC[i][j]);
                  if(j == detC[i].length -1) continue;
	    		System.out.print(" ");
	    	}
	    	System.out.println();
	    }

	    scan.close();
 	}
}
/tmp/hf-datasets-cache/medium/datasets/42704881117311-config-parquet-and-info-qiankunmu-Project_CodeNet-896c9d36/hub/datasets--qiankunmu--Project_CodeNet_Python800_and_Java250/snapshots/c899fde44a77ba1cc14973ed3de064e4ff3aadc7/Project_CodeNet_Java250.tar.gz