import java.util.Scanner;

public class Main {


    public static void main(String[] args){
		Scanner scan = new Scanner(System.in);
		
		int n = scan.nextInt();//n?????????A?????????
		int m = scan.nextInt();//m?????????A????¨??????¨??????B?????????
		int l = scan.nextInt();//l?????????B????¨????
		
		int retu_a[][] = new int[n][m];//??????A
		int retu_b[][] = new int[m][l];//??????B
		long retu_c[][] = new long[n][l];//??????C
		
		//??????A???????????????????´?
		for (int cnt_n = 0; cnt_n < n; cnt_n++){
			for (int cnt_m = 0; cnt_m < m; cnt_m++) {
				retu_a[cnt_n][cnt_m] = scan.nextInt();
			}
		}
		//??????B???????????????????´?
		for (int cnt_m = 0; cnt_m < m; cnt_m++){
			for (int cnt_l = 0; cnt_l < l; cnt_l++) {
				retu_b[cnt_m][cnt_l] = scan.nextInt();
			}
		}
		//??????C????¨??????¨????´?
		for (int cnt_n = 0; cnt_n < n; cnt_n++){
			for (int cnt_l = 0; cnt_l < l; cnt_l++){
				for (int cnt_m = 0; cnt_m < m; cnt_m++) {
					retu_c[cnt_n][cnt_l] += retu_a[cnt_n][cnt_m] * retu_b[cnt_m][cnt_l];
				}
				System.out.print(retu_c[cnt_n][cnt_l]);
				//?????????????´???§???????????°?????????????????\??????
				if(cnt_l != l - 1)
					System.out.print(" ");
			}
			System.out.print("\n");
		}
		//????§????
		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