import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int num1 = sc.nextInt();
		int num2 = sc.nextInt();
		int num3 = sc.nextInt();

		//????????????????????????????????£?¨?
		int[][] gyoretu1 = new int[num1][num2];
		//?????????????????????????????????????????£?¨?
		int[][] gyoretu2 = new int[num2][num3];

		//??????????????£??\
		for(int i = 0;i < gyoretu1.length; i++ ) {
			for(int j = 0;j < gyoretu1[i].length;j++) {
				gyoretu1[i][j] = sc.nextInt();
			}
		}
		for(int i = 0;i < gyoretu2.length ;i++) {
			for(int j = 0;j < gyoretu2[i].length; j++){
				gyoretu2[i][j] = sc.nextInt();
			}
		}



		long[][] ans = new long[num1][num3];

		for(int i = 0;i < ans.length;i++) {
			for(int j = 0;j < ans[i].length;j++) {
				for(int y = 0;y < gyoretu2.length;y++) {
					ans[i][j] += gyoretu1[i][y] * gyoretu2[y][j];
				}
			}
		}

		for(int i = 0;i < ans.length;i++) {
			for(int j = 0;j < ans[i].length;j++) {
				System.out.print(ans[i][j]);
				if(j != ans[i].length - 1){
					System.out.print(" ");
				}
			}
			System.out.println();
		}
	}
} import java.util.Scanner; Scanner java.util public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int num1 = sc.nextInt();
		int num2 = sc.nextInt();
		int num3 = sc.nextInt();

		//????????????????????????????????£?¨?
		int[][] gyoretu1 = new int[num1][num2];
		//?????????????????????????????????????????£?¨?
		int[][] gyoretu2 = new int[num2][num3];

		//??????????????£??\
		for(int i = 0;i < gyoretu1.length; i++ ) {
			for(int j = 0;j < gyoretu1[i].length;j++) {
				gyoretu1[i][j] = sc.nextInt();
			}
		}
		for(int i = 0;i < gyoretu2.length ;i++) {
			for(int j = 0;j < gyoretu2[i].length; j++){
				gyoretu2[i][j] = sc.nextInt();
			}
		}



		long[][] ans = new long[num1][num3];

		for(int i = 0;i < ans.length;i++) {
			for(int j = 0;j < ans[i].length;j++) {
				for(int y = 0;y < gyoretu2.length;y++) {
					ans[i][j] += gyoretu1[i][y] * gyoretu2[y][j];
				}
			}
		}

		for(int i = 0;i < ans.length;i++) {
			for(int j = 0;j < ans[i].length;j++) {
				System.out.print(ans[i][j]);
				if(j != ans[i].length - 1){
					System.out.print(" ");
				}
			}
			System.out.println();
		}
	}
} Main public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int num1 = sc.nextInt();
		int num2 = sc.nextInt();
		int num3 = sc.nextInt();

		//????????????????????????????????£?¨?
		int[][] gyoretu1 = new int[num1][num2];
		//?????????????????????????????????????????£?¨?
		int[][] gyoretu2 = new int[num2][num3];

		//??????????????£??\
		for(int i = 0;i < gyoretu1.length; i++ ) {
			for(int j = 0;j < gyoretu1[i].length;j++) {
				gyoretu1[i][j] = sc.nextInt();
			}
		}
		for(int i = 0;i < gyoretu2.length ;i++) {
			for(int j = 0;j < gyoretu2[i].length; j++){
				gyoretu2[i][j] = sc.nextInt();
			}
		}



		long[][] ans = new long[num1][num3];

		for(int i = 0;i < ans.length;i++) {
			for(int j = 0;j < ans[i].length;j++) {
				for(int y = 0;y < gyoretu2.length;y++) {
					ans[i][j] += gyoretu1[i][y] * gyoretu2[y][j];
				}
			}
		}

		for(int i = 0;i < ans.length;i++) {
			for(int j = 0;j < ans[i].length;j++) {
				System.out.print(ans[i][j]);
				if(j != ans[i].length - 1){
					System.out.print(" ");
				}
			}
			System.out.println();
		}
	} main {
		Scanner sc = new Scanner(System.in);
		int num1 = sc.nextInt();
		int num2 = sc.nextInt();
		int num3 = sc.nextInt();

		//????????????????????????????????£?¨?
		int[][] gyoretu1 = new int[num1][num2];
		//?????????????????????????????????????????£?¨?
		int[][] gyoretu2 = new int[num2][num3];

		//??????????????£??\
		for(int i = 0;i < gyoretu1.length; i++ ) {
			for(int j = 0;j < gyoretu1[i].length;j++) {
				gyoretu1[i][j] = sc.nextInt();
			}
		}
		for(int i = 0;i < gyoretu2.length ;i++) {
			for(int j = 0;j < gyoretu2[i].length; j++){
				gyoretu2[i][j] = sc.nextInt();
			}
		}



		long[][] ans = new long[num1][num3];

		for(int i = 0;i < ans.length;i++) {
			for(int j = 0;j < ans[i].length;j++) {
				for(int y = 0;y < gyoretu2.length;y++) {
					ans[i][j] += gyoretu1[i][y] * gyoretu2[y][j];
				}
			}
		}

		for(int i = 0;i < ans.length;i++) {
			for(int j = 0;j < ans[i].length;j++) {
				System.out.print(ans[i][j]);
				if(j != ans[i].length - 1){
					System.out.print(" ");
				}
			}
			System.out.println();
		}
	} Scanner sc = new Scanner(System.in); sc new Scanner(System.in) int num1 = sc.nextInt(); num1 sc.nextInt() sc.nextInt sc int num2 = sc.nextInt(); num2 sc.nextInt() sc.nextInt sc int num3 = sc.nextInt(); num3 sc.nextInt() sc.nextInt sc int[][] gyoretu1 = new int[num1][num2]; gyoretu1 new int[num1][num2] num1 num2 int[][] gyoretu2 = new int[num2][num3]; gyoretu2 new int[num2][num3] num2 num3 for(int i = 0;i < gyoretu1.length; i++ ) {
			for(int j = 0;j < gyoretu1[i].length;j++) {
				gyoretu1[i][j] = sc.nextInt();
			}
		} int i = 0; int i = 0; i 0 i < gyoretu1.length i gyoretu1.length gyoretu1 gyoretu1.length i++ i++ i {
			for(int j = 0;j < gyoretu1[i].length;j++) {
				gyoretu1[i][j] = sc.nextInt();
			}
		} {
			for(int j = 0;j < gyoretu1[i].length;j++) {
				gyoretu1[i][j] = sc.nextInt();
			}
		} for(int j = 0;j < gyoretu1[i].length;j++) {
				gyoretu1[i][j] = sc.nextInt();
			} int j = 0; int j = 0; j 0 j < gyoretu1[i].length j gyoretu1[i].length gyoretu1[i] gyoretu1 i gyoretu1[i].length j++ j++ j {
				gyoretu1[i][j] = sc.nextInt();
			} {
				gyoretu1[i][j] = sc.nextInt();
			} gyoretu1[i][j] = sc.nextInt() gyoretu1[i][j] gyoretu1[i] gyoretu1 i j sc.nextInt() sc.nextInt sc for(int i = 0;i < gyoretu2.length ;i++) {
			for(int j = 0;j < gyoretu2[i].length; j++){
				gyoretu2[i][j] = sc.nextInt();
			}
		} int i = 0; int i = 0; i 0 i < gyoretu2.length i gyoretu2.length gyoretu2 gyoretu2.length i++ i++ i {
			for(int j = 0;j < gyoretu2[i].length; j++){
				gyoretu2[i][j] = sc.nextInt();
			}
		} {
			for(int j = 0;j < gyoretu2[i].length; j++){
				gyoretu2[i][j] = sc.nextInt();
			}
		} for(int j = 0;j < gyoretu2[i].length; j++){
				gyoretu2[i][j] = sc.nextInt();
			} int j = 0; int j = 0; j 0 j < gyoretu2[i].length j gyoretu2[i].length gyoretu2[i] gyoretu2 i gyoretu2[i].length j++ j++ j {
				gyoretu2[i][j] = sc.nextInt();
			} {
				gyoretu2[i][j] = sc.nextInt();
			} gyoretu2[i][j] = sc.nextInt() gyoretu2[i][j] gyoretu2[i] gyoretu2 i j sc.nextInt() sc.nextInt sc long[][] ans = new long[num1][num3]; ans new long[num1][num3] num1 num3 for(int i = 0;i < ans.length;i++) {
			for(int j = 0;j < ans[i].length;j++) {
				for(int y = 0;y < gyoretu2.length;y++) {
					ans[i][j] += gyoretu1[i][y] * gyoretu2[y][j];
				}
			}
		} int i = 0; int i = 0; i 0 i < ans.length i ans.length ans ans.length i++ i++ i {
			for(int j = 0;j < ans[i].length;j++) {
				for(int y = 0;y < gyoretu2.length;y++) {
					ans[i][j] += gyoretu1[i][y] * gyoretu2[y][j];
				}
			}
		} {
			for(int j = 0;j < ans[i].length;j++) {
				for(int y = 0;y < gyoretu2.length;y++) {
					ans[i][j] += gyoretu1[i][y] * gyoretu2[y][j];
				}
			}
		} for(int j = 0;j < ans[i].length;j++) {
				for(int y = 0;y < gyoretu2.length;y++) {
					ans[i][j] += gyoretu1[i][y] * gyoretu2[y][j];
				}
			} int j = 0; int j = 0; j 0 j < ans[i].length j ans[i].length ans[i] ans i ans[i].length j++ j++ j {
				for(int y = 0;y < gyoretu2.length;y++) {
					ans[i][j] += gyoretu1[i][y] * gyoretu2[y][j];
				}
			} {
				for(int y = 0;y < gyoretu2.length;y++) {
					ans[i][j] += gyoretu1[i][y] * gyoretu2[y][j];
				}
			} for(int y = 0;y < gyoretu2.length;y++) {
					ans[i][j] += gyoretu1[i][y] * gyoretu2[y][j];
				} int y = 0; int y = 0; y 0 y < gyoretu2.length y gyoretu2.length gyoretu2 gyoretu2.length y++ y++ y {
					ans[i][j] += gyoretu1[i][y] * gyoretu2[y][j];
				} {
					ans[i][j] += gyoretu1[i][y] * gyoretu2[y][j];
				} ans[i][j] += gyoretu1[i][y] * gyoretu2[y][j] ans[i][j] ans[i] ans i j gyoretu1[i][y] * gyoretu2[y][j] gyoretu1[i][y] gyoretu1[i] gyoretu1 i y gyoretu2[y][j] gyoretu2[y] gyoretu2 y j for(int i = 0;i < ans.length;i++) {
			for(int j = 0;j < ans[i].length;j++) {
				System.out.print(ans[i][j]);
				if(j != ans[i].length - 1){
					System.out.print(" ");
				}
			}
			System.out.println();
		} int i = 0; int i = 0; i 0 i < ans.length i ans.length ans ans.length i++ i++ i {
			for(int j = 0;j < ans[i].length;j++) {
				System.out.print(ans[i][j]);
				if(j != ans[i].length - 1){
					System.out.print(" ");
				}
			}
			System.out.println();
		} {
			for(int j = 0;j < ans[i].length;j++) {
				System.out.print(ans[i][j]);
				if(j != ans[i].length - 1){
					System.out.print(" ");
				}
			}
			System.out.println();
		} for(int j = 0;j < ans[i].length;j++) {
				System.out.print(ans[i][j]);
				if(j != ans[i].length - 1){
					System.out.print(" ");
				}
			} int j = 0; int j = 0; j 0 j < ans[i].length j ans[i].length ans[i] ans i ans[i].length j++ j++ j {
				System.out.print(ans[i][j]);
				if(j != ans[i].length - 1){
					System.out.print(" ");
				}
			} {
				System.out.print(ans[i][j]);
				if(j != ans[i].length - 1){
					System.out.print(" ");
				}
			} System.out.print(ans[i][j]) System.out.print System.out System System.out ans[i][j] ans[i] ans i j if(j != ans[i].length - 1){
					System.out.print(" ");
				} j != ans[i].length - 1 j ans[i].length - 1 ans[i].length ans[i] ans i ans[i].length 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 sc = new Scanner(System.in);
		int num1 = sc.nextInt();
		int num2 = sc.nextInt();
		int num3 = sc.nextInt();

		//????????????????????????????????£?¨?
		int[][] gyoretu1 = new int[num1][num2];
		//?????????????????????????????????????????£?¨?
		int[][] gyoretu2 = new int[num2][num3];

		//??????????????£??\
		for(int i = 0;i < gyoretu1.length; i++ ) {
			for(int j = 0;j < gyoretu1[i].length;j++) {
				gyoretu1[i][j] = sc.nextInt();
			}
		}
		for(int i = 0;i < gyoretu2.length ;i++) {
			for(int j = 0;j < gyoretu2[i].length; j++){
				gyoretu2[i][j] = sc.nextInt();
			}
		}



		long[][] ans = new long[num1][num3];

		for(int i = 0;i < ans.length;i++) {
			for(int j = 0;j < ans[i].length;j++) {
				for(int y = 0;y < gyoretu2.length;y++) {
					ans[i][j] += gyoretu1[i][y] * gyoretu2[y][j];
				}
			}
		}

		for(int i = 0;i < ans.length;i++) {
			for(int j = 0;j < ans[i].length;j++) {
				System.out.print(ans[i][j]);
				if(j != ans[i].length - 1){
					System.out.print(" ");
				}
			}
			System.out.println();
		}
	}
} public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int num1 = sc.nextInt();
		int num2 = sc.nextInt();
		int num3 = sc.nextInt();

		//????????????????????????????????£?¨?
		int[][] gyoretu1 = new int[num1][num2];
		//?????????????????????????????????????????£?¨?
		int[][] gyoretu2 = new int[num2][num3];

		//??????????????£??\
		for(int i = 0;i < gyoretu1.length; i++ ) {
			for(int j = 0;j < gyoretu1[i].length;j++) {
				gyoretu1[i][j] = sc.nextInt();
			}
		}
		for(int i = 0;i < gyoretu2.length ;i++) {
			for(int j = 0;j < gyoretu2[i].length; j++){
				gyoretu2[i][j] = sc.nextInt();
			}
		}



		long[][] ans = new long[num1][num3];

		for(int i = 0;i < ans.length;i++) {
			for(int j = 0;j < ans[i].length;j++) {
				for(int y = 0;y < gyoretu2.length;y++) {
					ans[i][j] += gyoretu1[i][y] * gyoretu2[y][j];
				}
			}
		}

		for(int i = 0;i < ans.length;i++) {
			for(int j = 0;j < ans[i].length;j++) {
				System.out.print(ans[i][j]);
				if(j != ans[i].length - 1){
					System.out.print(" ");
				}
			}
			System.out.println();
		}
	}
} Main
import java.util.Scanner;

public class Main {
	public static void main(String[] args) {
		Scanner sc = new Scanner(System.in);
		int num1 = sc.nextInt();
		int num2 = sc.nextInt();
		int num3 = sc.nextInt();

		//????????????????????????????????£?¨?
		int[][] gyoretu1 = new int[num1][num2];
		//?????????????????????????????????????????£?¨?
		int[][] gyoretu2 = new int[num2][num3];

		//??????????????£??\
		for(int i = 0;i < gyoretu1.length; i++ ) {
			for(int j = 0;j < gyoretu1[i].length;j++) {
				gyoretu1[i][j] = sc.nextInt();
			}
		}
		for(int i = 0;i < gyoretu2.length ;i++) {
			for(int j = 0;j < gyoretu2[i].length; j++){
				gyoretu2[i][j] = sc.nextInt();
			}
		}



		long[][] ans = new long[num1][num3];

		for(int i = 0;i < ans.length;i++) {
			for(int j = 0;j < ans[i].length;j++) {
				for(int y = 0;y < gyoretu2.length;y++) {
					ans[i][j] += gyoretu1[i][y] * gyoretu2[y][j];
				}
			}
		}

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