

import java.util.Scanner;

public class Main {

	public static void main(String[] args) {

		Scanner in = new Scanner(System.in);

		int line = in.nextInt();
		int line_column = in.nextInt();
		int column = in.nextInt();

		int[][] matrixA = new int[line][line_column];
		int[][] matrixB = new int[line_column][column];

		for(int l = 0; l < line; l++){

			for(int l_c = 0; l_c < line_column; l_c++){

				matrixA[l][l_c] = in.nextInt();

			}
		}

		for(int l_c = 0; l_c < line_column; l_c++){

			for(int c = 0; c < column; c++){

				matrixB[l_c][c] = in.nextInt();

			}
		}

		long[][] ans = new long[line][column];

		for(int l = 0; l < line; l++){

			for(int l_c = 0; l_c < line_column; l_c++){

				for(int c = 0; c < column; c++){

					ans[l][c] += matrixA[l][l_c] * matrixB[l_c][c];

				}
			}
		}

		for(int l = 0; l < line; l++){

			for(int c = 0; c < column - 1; c++){

				System.out.print(ans[l][c] + " ");

			}

			System.out.println(ans[l][column - 1]);

		}
	}
} import java.util.Scanner; Scanner java.util public class Main {

	public static void main(String[] args) {

		Scanner in = new Scanner(System.in);

		int line = in.nextInt();
		int line_column = in.nextInt();
		int column = in.nextInt();

		int[][] matrixA = new int[line][line_column];
		int[][] matrixB = new int[line_column][column];

		for(int l = 0; l < line; l++){

			for(int l_c = 0; l_c < line_column; l_c++){

				matrixA[l][l_c] = in.nextInt();

			}
		}

		for(int l_c = 0; l_c < line_column; l_c++){

			for(int c = 0; c < column; c++){

				matrixB[l_c][c] = in.nextInt();

			}
		}

		long[][] ans = new long[line][column];

		for(int l = 0; l < line; l++){

			for(int l_c = 0; l_c < line_column; l_c++){

				for(int c = 0; c < column; c++){

					ans[l][c] += matrixA[l][l_c] * matrixB[l_c][c];

				}
			}
		}

		for(int l = 0; l < line; l++){

			for(int c = 0; c < column - 1; c++){

				System.out.print(ans[l][c] + " ");

			}

			System.out.println(ans[l][column - 1]);

		}
	}
} Main public static void main(String[] args) {

		Scanner in = new Scanner(System.in);

		int line = in.nextInt();
		int line_column = in.nextInt();
		int column = in.nextInt();

		int[][] matrixA = new int[line][line_column];
		int[][] matrixB = new int[line_column][column];

		for(int l = 0; l < line; l++){

			for(int l_c = 0; l_c < line_column; l_c++){

				matrixA[l][l_c] = in.nextInt();

			}
		}

		for(int l_c = 0; l_c < line_column; l_c++){

			for(int c = 0; c < column; c++){

				matrixB[l_c][c] = in.nextInt();

			}
		}

		long[][] ans = new long[line][column];

		for(int l = 0; l < line; l++){

			for(int l_c = 0; l_c < line_column; l_c++){

				for(int c = 0; c < column; c++){

					ans[l][c] += matrixA[l][l_c] * matrixB[l_c][c];

				}
			}
		}

		for(int l = 0; l < line; l++){

			for(int c = 0; c < column - 1; c++){

				System.out.print(ans[l][c] + " ");

			}

			System.out.println(ans[l][column - 1]);

		}
	} main {

		Scanner in = new Scanner(System.in);

		int line = in.nextInt();
		int line_column = in.nextInt();
		int column = in.nextInt();

		int[][] matrixA = new int[line][line_column];
		int[][] matrixB = new int[line_column][column];

		for(int l = 0; l < line; l++){

			for(int l_c = 0; l_c < line_column; l_c++){

				matrixA[l][l_c] = in.nextInt();

			}
		}

		for(int l_c = 0; l_c < line_column; l_c++){

			for(int c = 0; c < column; c++){

				matrixB[l_c][c] = in.nextInt();

			}
		}

		long[][] ans = new long[line][column];

		for(int l = 0; l < line; l++){

			for(int l_c = 0; l_c < line_column; l_c++){

				for(int c = 0; c < column; c++){

					ans[l][c] += matrixA[l][l_c] * matrixB[l_c][c];

				}
			}
		}

		for(int l = 0; l < line; l++){

			for(int c = 0; c < column - 1; c++){

				System.out.print(ans[l][c] + " ");

			}

			System.out.println(ans[l][column - 1]);

		}
	} Scanner in = new Scanner(System.in); in new Scanner(System.in) int line = in.nextInt(); line in.nextInt() in.nextInt in int line_column = in.nextInt(); line_column in.nextInt() in.nextInt in int column = in.nextInt(); column in.nextInt() in.nextInt in int[][] matrixA = new int[line][line_column]; matrixA new int[line][line_column] line line_column int[][] matrixB = new int[line_column][column]; matrixB new int[line_column][column] line_column column for(int l = 0; l < line; l++){

			for(int l_c = 0; l_c < line_column; l_c++){

				matrixA[l][l_c] = in.nextInt();

			}
		} int l = 0; int l = 0; l 0 l < line l line l++ l++ l {

			for(int l_c = 0; l_c < line_column; l_c++){

				matrixA[l][l_c] = in.nextInt();

			}
		} {

			for(int l_c = 0; l_c < line_column; l_c++){

				matrixA[l][l_c] = in.nextInt();

			}
		} for(int l_c = 0; l_c < line_column; l_c++){

				matrixA[l][l_c] = in.nextInt();

			} int l_c = 0; int l_c = 0; l_c 0 l_c < line_column l_c line_column l_c++ l_c++ l_c {

				matrixA[l][l_c] = in.nextInt();

			} {

				matrixA[l][l_c] = in.nextInt();

			} matrixA[l][l_c] = in.nextInt() matrixA[l][l_c] matrixA[l] matrixA l l_c in.nextInt() in.nextInt in for(int l_c = 0; l_c < line_column; l_c++){

			for(int c = 0; c < column; c++){

				matrixB[l_c][c] = in.nextInt();

			}
		} int l_c = 0; int l_c = 0; l_c 0 l_c < line_column l_c line_column l_c++ l_c++ l_c {

			for(int c = 0; c < column; c++){

				matrixB[l_c][c] = in.nextInt();

			}
		} {

			for(int c = 0; c < column; c++){

				matrixB[l_c][c] = in.nextInt();

			}
		} for(int c = 0; c < column; c++){

				matrixB[l_c][c] = in.nextInt();

			} int c = 0; int c = 0; c 0 c < column c column c++ c++ c {

				matrixB[l_c][c] = in.nextInt();

			} {

				matrixB[l_c][c] = in.nextInt();

			} matrixB[l_c][c] = in.nextInt() matrixB[l_c][c] matrixB[l_c] matrixB l_c c in.nextInt() in.nextInt in long[][] ans = new long[line][column]; ans new long[line][column] line column for(int l = 0; l < line; l++){

			for(int l_c = 0; l_c < line_column; l_c++){

				for(int c = 0; c < column; c++){

					ans[l][c] += matrixA[l][l_c] * matrixB[l_c][c];

				}
			}
		} int l = 0; int l = 0; l 0 l < line l line l++ l++ l {

			for(int l_c = 0; l_c < line_column; l_c++){

				for(int c = 0; c < column; c++){

					ans[l][c] += matrixA[l][l_c] * matrixB[l_c][c];

				}
			}
		} {

			for(int l_c = 0; l_c < line_column; l_c++){

				for(int c = 0; c < column; c++){

					ans[l][c] += matrixA[l][l_c] * matrixB[l_c][c];

				}
			}
		} for(int l_c = 0; l_c < line_column; l_c++){

				for(int c = 0; c < column; c++){

					ans[l][c] += matrixA[l][l_c] * matrixB[l_c][c];

				}
			} int l_c = 0; int l_c = 0; l_c 0 l_c < line_column l_c line_column l_c++ l_c++ l_c {

				for(int c = 0; c < column; c++){

					ans[l][c] += matrixA[l][l_c] * matrixB[l_c][c];

				}
			} {

				for(int c = 0; c < column; c++){

					ans[l][c] += matrixA[l][l_c] * matrixB[l_c][c];

				}
			} for(int c = 0; c < column; c++){

					ans[l][c] += matrixA[l][l_c] * matrixB[l_c][c];

				} int c = 0; int c = 0; c 0 c < column c column c++ c++ c {

					ans[l][c] += matrixA[l][l_c] * matrixB[l_c][c];

				} {

					ans[l][c] += matrixA[l][l_c] * matrixB[l_c][c];

				} ans[l][c] += matrixA[l][l_c] * matrixB[l_c][c] ans[l][c] ans[l] ans l c matrixA[l][l_c] * matrixB[l_c][c] matrixA[l][l_c] matrixA[l] matrixA l l_c matrixB[l_c][c] matrixB[l_c] matrixB l_c c for(int l = 0; l < line; l++){

			for(int c = 0; c < column - 1; c++){

				System.out.print(ans[l][c] + " ");

			}

			System.out.println(ans[l][column - 1]);

		} int l = 0; int l = 0; l 0 l < line l line l++ l++ l {

			for(int c = 0; c < column - 1; c++){

				System.out.print(ans[l][c] + " ");

			}

			System.out.println(ans[l][column - 1]);

		} {

			for(int c = 0; c < column - 1; c++){

				System.out.print(ans[l][c] + " ");

			}

			System.out.println(ans[l][column - 1]);

		} for(int c = 0; c < column - 1; c++){

				System.out.print(ans[l][c] + " ");

			} int c = 0; int c = 0; c 0 c < column - 1 c column - 1 column 1 c++ c++ c {

				System.out.print(ans[l][c] + " ");

			} {

				System.out.print(ans[l][c] + " ");

			} System.out.print(ans[l][c] + " ") System.out.print System.out System System.out ans[l][c] + " " ans[l][c] ans[l] ans l c " " System.out.println(ans[l][column - 1]) System.out.println System.out System System.out ans[l][column - 1] ans[l] ans l column - 1 column 1 String[] args args public class Main {

	public static void main(String[] args) {

		Scanner in = new Scanner(System.in);

		int line = in.nextInt();
		int line_column = in.nextInt();
		int column = in.nextInt();

		int[][] matrixA = new int[line][line_column];
		int[][] matrixB = new int[line_column][column];

		for(int l = 0; l < line; l++){

			for(int l_c = 0; l_c < line_column; l_c++){

				matrixA[l][l_c] = in.nextInt();

			}
		}

		for(int l_c = 0; l_c < line_column; l_c++){

			for(int c = 0; c < column; c++){

				matrixB[l_c][c] = in.nextInt();

			}
		}

		long[][] ans = new long[line][column];

		for(int l = 0; l < line; l++){

			for(int l_c = 0; l_c < line_column; l_c++){

				for(int c = 0; c < column; c++){

					ans[l][c] += matrixA[l][l_c] * matrixB[l_c][c];

				}
			}
		}

		for(int l = 0; l < line; l++){

			for(int c = 0; c < column - 1; c++){

				System.out.print(ans[l][c] + " ");

			}

			System.out.println(ans[l][column - 1]);

		}
	}
} public class Main {

	public static void main(String[] args) {

		Scanner in = new Scanner(System.in);

		int line = in.nextInt();
		int line_column = in.nextInt();
		int column = in.nextInt();

		int[][] matrixA = new int[line][line_column];
		int[][] matrixB = new int[line_column][column];

		for(int l = 0; l < line; l++){

			for(int l_c = 0; l_c < line_column; l_c++){

				matrixA[l][l_c] = in.nextInt();

			}
		}

		for(int l_c = 0; l_c < line_column; l_c++){

			for(int c = 0; c < column; c++){

				matrixB[l_c][c] = in.nextInt();

			}
		}

		long[][] ans = new long[line][column];

		for(int l = 0; l < line; l++){

			for(int l_c = 0; l_c < line_column; l_c++){

				for(int c = 0; c < column; c++){

					ans[l][c] += matrixA[l][l_c] * matrixB[l_c][c];

				}
			}
		}

		for(int l = 0; l < line; l++){

			for(int c = 0; c < column - 1; c++){

				System.out.print(ans[l][c] + " ");

			}

			System.out.println(ans[l][column - 1]);

		}
	}
} Main


import java.util.Scanner;

public class Main {

	public static void main(String[] args) {

		Scanner in = new Scanner(System.in);

		int line = in.nextInt();
		int line_column = in.nextInt();
		int column = in.nextInt();

		int[][] matrixA = new int[line][line_column];
		int[][] matrixB = new int[line_column][column];

		for(int l = 0; l < line; l++){

			for(int l_c = 0; l_c < line_column; l_c++){

				matrixA[l][l_c] = in.nextInt();

			}
		}

		for(int l_c = 0; l_c < line_column; l_c++){

			for(int c = 0; c < column; c++){

				matrixB[l_c][c] = in.nextInt();

			}
		}

		long[][] ans = new long[line][column];

		for(int l = 0; l < line; l++){

			for(int l_c = 0; l_c < line_column; l_c++){

				for(int c = 0; c < column; c++){

					ans[l][c] += matrixA[l][l_c] * matrixB[l_c][c];

				}
			}
		}

		for(int l = 0; l < line; l++){

			for(int c = 0; c < column - 1; c++){

				System.out.print(ans[l][c] + " ");

			}

			System.out.println(ans[l][column - 1]);

		}
	}
}