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();
	}
} 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();//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();
	}
} 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();
	} main {
		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();
	} 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 retu_a[][] = new int[n][m]; retu_a new int[n][m] n m int retu_b[][] = new int[m][l]; retu_b new int[m][l] m l long retu_c[][] = new long[n][l]; retu_c new long[n][l] n l 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();
			}
		} int cnt_n = 0; int cnt_n = 0; cnt_n 0 cnt_n < n cnt_n n cnt_n++ cnt_n++ cnt_n {
			for (int cnt_m = 0; cnt_m < m; cnt_m++) {
				retu_a[cnt_n][cnt_m] = scan.nextInt();
			}
		} {
			for (int cnt_m = 0; cnt_m < m; cnt_m++) {
				retu_a[cnt_n][cnt_m] = scan.nextInt();
			}
		} for (int cnt_m = 0; cnt_m < m; cnt_m++) {
				retu_a[cnt_n][cnt_m] = scan.nextInt();
			} int cnt_m = 0; int cnt_m = 0; cnt_m 0 cnt_m < m cnt_m m cnt_m++ cnt_m++ cnt_m {
				retu_a[cnt_n][cnt_m] = scan.nextInt();
			} {
				retu_a[cnt_n][cnt_m] = scan.nextInt();
			} retu_a[cnt_n][cnt_m] = scan.nextInt() retu_a[cnt_n][cnt_m] retu_a[cnt_n] retu_a cnt_n cnt_m scan.nextInt() scan.nextInt scan 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();
			}
		} int cnt_m = 0; int cnt_m = 0; cnt_m 0 cnt_m < m cnt_m m cnt_m++ cnt_m++ cnt_m {
			for (int cnt_l = 0; cnt_l < l; cnt_l++) {
				retu_b[cnt_m][cnt_l] = scan.nextInt();
			}
		} {
			for (int cnt_l = 0; cnt_l < l; cnt_l++) {
				retu_b[cnt_m][cnt_l] = scan.nextInt();
			}
		} for (int cnt_l = 0; cnt_l < l; cnt_l++) {
				retu_b[cnt_m][cnt_l] = scan.nextInt();
			} int cnt_l = 0; int cnt_l = 0; cnt_l 0 cnt_l < l cnt_l l cnt_l++ cnt_l++ cnt_l {
				retu_b[cnt_m][cnt_l] = scan.nextInt();
			} {
				retu_b[cnt_m][cnt_l] = scan.nextInt();
			} retu_b[cnt_m][cnt_l] = scan.nextInt() retu_b[cnt_m][cnt_l] retu_b[cnt_m] retu_b cnt_m cnt_l scan.nextInt() scan.nextInt scan 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");
		} int cnt_n = 0; int cnt_n = 0; cnt_n 0 cnt_n < n cnt_n n cnt_n++ cnt_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");
		} {
			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");
		} 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(" ");
			} int cnt_l = 0; int cnt_l = 0; cnt_l 0 cnt_l < l cnt_l l cnt_l++ cnt_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(" ");
			} {
				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(" ");
			} 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];
				} int cnt_m = 0; int cnt_m = 0; cnt_m 0 cnt_m < m cnt_m m cnt_m++ cnt_m++ cnt_m {
					retu_c[cnt_n][cnt_l] += retu_a[cnt_n][cnt_m] * retu_b[cnt_m][cnt_l];
				} {
					retu_c[cnt_n][cnt_l] += retu_a[cnt_n][cnt_m] * retu_b[cnt_m][cnt_l];
				} retu_c[cnt_n][cnt_l] += retu_a[cnt_n][cnt_m] * retu_b[cnt_m][cnt_l] retu_c[cnt_n][cnt_l] retu_c[cnt_n] retu_c cnt_n cnt_l retu_a[cnt_n][cnt_m] * retu_b[cnt_m][cnt_l] retu_a[cnt_n][cnt_m] retu_a[cnt_n] retu_a cnt_n cnt_m retu_b[cnt_m][cnt_l] retu_b[cnt_m] retu_b cnt_m cnt_l System.out.print(retu_c[cnt_n][cnt_l]) System.out.print System.out System System.out retu_c[cnt_n][cnt_l] retu_c[cnt_n] retu_c cnt_n cnt_l if(cnt_l != l - 1)
					System.out.print(" "); cnt_l != l - 1 cnt_l l - 1 l 1 System.out.print(" ") System.out.print System.out System System.out " " System.out.print("\n") System.out.print System.out System System.out "\n" scan.close() scan.close scan String[] args args 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();
	}
} 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();
	}
} Main
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();
	}
}