import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {
	public static void main(String[] args) throws IOException {
		BufferedReader input = new BufferedReader(new InputStreamReader(System.in));

		// A,B,C?????????????????¨???????±?????????????
		String first_line = input.readLine();

		// ??\??????????´?
		String[] array_of_lo_col = first_line.split(" ");

		// ??????A,C?????????????????????
		int low_n = Integer.parseInt(array_of_lo_col[0]);

		// ??????A???????????????B?????????????????????
		int column_or_row_m = Integer.parseInt(array_of_lo_col[1]);

		// ??????B,C?????????????????????
		int column_l = Integer.parseInt(array_of_lo_col[2]);

		// ??????A???????¬??????????
		long[][] matrix_A = new long[low_n][column_or_row_m];

		// ??????B???????¬??????????
		long[][] matrix_B = new long[column_or_row_m][column_l];

		// ??????C???????¬??????????
		long[][] matrix_C = new long[low_n][column_l];

		// ??????C???Ci???????????¨?????????A?????\??????????????°??????????´?
		for (int low_spot = 0; low_spot < low_n; low_spot++) {

			// ??????A???????´???\???
			String elements_A = input.readLine();

			// ??\??????????????????A???????´????array_elements_A???????´?
			String[] array_elements_A = elements_A.split(" ");

			// ??????A???????´????????´?
			for (int column_spot = 0; column_spot < column_or_row_m; column_spot++) {

				// array_elements_A???????´????????????°??????long??????
				long element_A = Long.parseLong(array_elements_A[column_spot]);

				// ????´??????????A???????´?
				matrix_A[low_spot][column_spot] = element_A;

			}

		}

		// ??????C???Ci???????????¨?????????B?????\??????????????°??????????´?
		for (int low_spot = 0; low_spot < column_or_row_m; low_spot++) {

			// ??????B???????´???\???
			String elements_B = input.readLine();

			// ??\??????????????????B???????´????array_elements_A???????´?
			String[] array_elements_B = elements_B.split(" ");

			// ??????B???????´????????´?
			for (int column_spot = 0; column_spot < column_l; column_spot++) {

				// array_elements_B???????´????????????°??????long??????
				long element_B = Long.parseLong(array_elements_B[column_spot]);

				// ????´??????????B???????´?
				matrix_B[low_spot][column_spot] = element_B;

			}

		}

		// C?????????????´???¨
		long Ci = 0;

		// ??????C???????´?
		for (int low_spot = 0; low_spot < low_n; low_spot++) {

			// ??????C?????????????´?
			for (int column_spot = 0; column_spot < column_l; column_spot++) {

				// C?????????????´????A????????¨B?????????????????????
				for (int m_term = 0; m_term < column_or_row_m; m_term++) {


					// Ci???????´??????????matrixA,B?????????????¶?????????????
					Ci += matrix_A[low_spot][m_term] * matrix_B[m_term][column_spot];

				}


				// ????´?C???Ci???????´?
				matrix_C[low_spot][column_spot] = Ci;

				// ??????
				System.out.print(matrix_C[low_spot][column_spot]);

				//AOJ???????????¨
				int remove_blank_last=column_l-1;

				//???????????????????´????????????????????¶??????????
				if(column_spot < remove_blank_last){

				System.out.print(" ");

				}

				//Ci????????????
				Ci=0;

			}

			// ????????????
			System.out.println("");

		}

	}

} import java.io.BufferedReader; BufferedReader java.io import java.io.IOException; IOException java.io import java.io.InputStreamReader; InputStreamReader java.io public class Main {
	public static void main(String[] args) throws IOException {
		BufferedReader input = new BufferedReader(new InputStreamReader(System.in));

		// A,B,C?????????????????¨???????±?????????????
		String first_line = input.readLine();

		// ??\??????????´?
		String[] array_of_lo_col = first_line.split(" ");

		// ??????A,C?????????????????????
		int low_n = Integer.parseInt(array_of_lo_col[0]);

		// ??????A???????????????B?????????????????????
		int column_or_row_m = Integer.parseInt(array_of_lo_col[1]);

		// ??????B,C?????????????????????
		int column_l = Integer.parseInt(array_of_lo_col[2]);

		// ??????A???????¬??????????
		long[][] matrix_A = new long[low_n][column_or_row_m];

		// ??????B???????¬??????????
		long[][] matrix_B = new long[column_or_row_m][column_l];

		// ??????C???????¬??????????
		long[][] matrix_C = new long[low_n][column_l];

		// ??????C???Ci???????????¨?????????A?????\??????????????°??????????´?
		for (int low_spot = 0; low_spot < low_n; low_spot++) {

			// ??????A???????´???\???
			String elements_A = input.readLine();

			// ??\??????????????????A???????´????array_elements_A???????´?
			String[] array_elements_A = elements_A.split(" ");

			// ??????A???????´????????´?
			for (int column_spot = 0; column_spot < column_or_row_m; column_spot++) {

				// array_elements_A???????´????????????°??????long??????
				long element_A = Long.parseLong(array_elements_A[column_spot]);

				// ????´??????????A???????´?
				matrix_A[low_spot][column_spot] = element_A;

			}

		}

		// ??????C???Ci???????????¨?????????B?????\??????????????°??????????´?
		for (int low_spot = 0; low_spot < column_or_row_m; low_spot++) {

			// ??????B???????´???\???
			String elements_B = input.readLine();

			// ??\??????????????????B???????´????array_elements_A???????´?
			String[] array_elements_B = elements_B.split(" ");

			// ??????B???????´????????´?
			for (int column_spot = 0; column_spot < column_l; column_spot++) {

				// array_elements_B???????´????????????°??????long??????
				long element_B = Long.parseLong(array_elements_B[column_spot]);

				// ????´??????????B???????´?
				matrix_B[low_spot][column_spot] = element_B;

			}

		}

		// C?????????????´???¨
		long Ci = 0;

		// ??????C???????´?
		for (int low_spot = 0; low_spot < low_n; low_spot++) {

			// ??????C?????????????´?
			for (int column_spot = 0; column_spot < column_l; column_spot++) {

				// C?????????????´????A????????¨B?????????????????????
				for (int m_term = 0; m_term < column_or_row_m; m_term++) {


					// Ci???????´??????????matrixA,B?????????????¶?????????????
					Ci += matrix_A[low_spot][m_term] * matrix_B[m_term][column_spot];

				}


				// ????´?C???Ci???????´?
				matrix_C[low_spot][column_spot] = Ci;

				// ??????
				System.out.print(matrix_C[low_spot][column_spot]);

				//AOJ???????????¨
				int remove_blank_last=column_l-1;

				//???????????????????´????????????????????¶??????????
				if(column_spot < remove_blank_last){

				System.out.print(" ");

				}

				//Ci????????????
				Ci=0;

			}

			// ????????????
			System.out.println("");

		}

	}

} Main public static void main(String[] args) throws IOException {
		BufferedReader input = new BufferedReader(new InputStreamReader(System.in));

		// A,B,C?????????????????¨???????±?????????????
		String first_line = input.readLine();

		// ??\??????????´?
		String[] array_of_lo_col = first_line.split(" ");

		// ??????A,C?????????????????????
		int low_n = Integer.parseInt(array_of_lo_col[0]);

		// ??????A???????????????B?????????????????????
		int column_or_row_m = Integer.parseInt(array_of_lo_col[1]);

		// ??????B,C?????????????????????
		int column_l = Integer.parseInt(array_of_lo_col[2]);

		// ??????A???????¬??????????
		long[][] matrix_A = new long[low_n][column_or_row_m];

		// ??????B???????¬??????????
		long[][] matrix_B = new long[column_or_row_m][column_l];

		// ??????C???????¬??????????
		long[][] matrix_C = new long[low_n][column_l];

		// ??????C???Ci???????????¨?????????A?????\??????????????°??????????´?
		for (int low_spot = 0; low_spot < low_n; low_spot++) {

			// ??????A???????´???\???
			String elements_A = input.readLine();

			// ??\??????????????????A???????´????array_elements_A???????´?
			String[] array_elements_A = elements_A.split(" ");

			// ??????A???????´????????´?
			for (int column_spot = 0; column_spot < column_or_row_m; column_spot++) {

				// array_elements_A???????´????????????°??????long??????
				long element_A = Long.parseLong(array_elements_A[column_spot]);

				// ????´??????????A???????´?
				matrix_A[low_spot][column_spot] = element_A;

			}

		}

		// ??????C???Ci???????????¨?????????B?????\??????????????°??????????´?
		for (int low_spot = 0; low_spot < column_or_row_m; low_spot++) {

			// ??????B???????´???\???
			String elements_B = input.readLine();

			// ??\??????????????????B???????´????array_elements_A???????´?
			String[] array_elements_B = elements_B.split(" ");

			// ??????B???????´????????´?
			for (int column_spot = 0; column_spot < column_l; column_spot++) {

				// array_elements_B???????´????????????°??????long??????
				long element_B = Long.parseLong(array_elements_B[column_spot]);

				// ????´??????????B???????´?
				matrix_B[low_spot][column_spot] = element_B;

			}

		}

		// C?????????????´???¨
		long Ci = 0;

		// ??????C???????´?
		for (int low_spot = 0; low_spot < low_n; low_spot++) {

			// ??????C?????????????´?
			for (int column_spot = 0; column_spot < column_l; column_spot++) {

				// C?????????????´????A????????¨B?????????????????????
				for (int m_term = 0; m_term < column_or_row_m; m_term++) {


					// Ci???????´??????????matrixA,B?????????????¶?????????????
					Ci += matrix_A[low_spot][m_term] * matrix_B[m_term][column_spot];

				}


				// ????´?C???Ci???????´?
				matrix_C[low_spot][column_spot] = Ci;

				// ??????
				System.out.print(matrix_C[low_spot][column_spot]);

				//AOJ???????????¨
				int remove_blank_last=column_l-1;

				//???????????????????´????????????????????¶??????????
				if(column_spot < remove_blank_last){

				System.out.print(" ");

				}

				//Ci????????????
				Ci=0;

			}

			// ????????????
			System.out.println("");

		}

	} main {
		BufferedReader input = new BufferedReader(new InputStreamReader(System.in));

		// A,B,C?????????????????¨???????±?????????????
		String first_line = input.readLine();

		// ??\??????????´?
		String[] array_of_lo_col = first_line.split(" ");

		// ??????A,C?????????????????????
		int low_n = Integer.parseInt(array_of_lo_col[0]);

		// ??????A???????????????B?????????????????????
		int column_or_row_m = Integer.parseInt(array_of_lo_col[1]);

		// ??????B,C?????????????????????
		int column_l = Integer.parseInt(array_of_lo_col[2]);

		// ??????A???????¬??????????
		long[][] matrix_A = new long[low_n][column_or_row_m];

		// ??????B???????¬??????????
		long[][] matrix_B = new long[column_or_row_m][column_l];

		// ??????C???????¬??????????
		long[][] matrix_C = new long[low_n][column_l];

		// ??????C???Ci???????????¨?????????A?????\??????????????°??????????´?
		for (int low_spot = 0; low_spot < low_n; low_spot++) {

			// ??????A???????´???\???
			String elements_A = input.readLine();

			// ??\??????????????????A???????´????array_elements_A???????´?
			String[] array_elements_A = elements_A.split(" ");

			// ??????A???????´????????´?
			for (int column_spot = 0; column_spot < column_or_row_m; column_spot++) {

				// array_elements_A???????´????????????°??????long??????
				long element_A = Long.parseLong(array_elements_A[column_spot]);

				// ????´??????????A???????´?
				matrix_A[low_spot][column_spot] = element_A;

			}

		}

		// ??????C???Ci???????????¨?????????B?????\??????????????°??????????´?
		for (int low_spot = 0; low_spot < column_or_row_m; low_spot++) {

			// ??????B???????´???\???
			String elements_B = input.readLine();

			// ??\??????????????????B???????´????array_elements_A???????´?
			String[] array_elements_B = elements_B.split(" ");

			// ??????B???????´????????´?
			for (int column_spot = 0; column_spot < column_l; column_spot++) {

				// array_elements_B???????´????????????°??????long??????
				long element_B = Long.parseLong(array_elements_B[column_spot]);

				// ????´??????????B???????´?
				matrix_B[low_spot][column_spot] = element_B;

			}

		}

		// C?????????????´???¨
		long Ci = 0;

		// ??????C???????´?
		for (int low_spot = 0; low_spot < low_n; low_spot++) {

			// ??????C?????????????´?
			for (int column_spot = 0; column_spot < column_l; column_spot++) {

				// C?????????????´????A????????¨B?????????????????????
				for (int m_term = 0; m_term < column_or_row_m; m_term++) {


					// Ci???????´??????????matrixA,B?????????????¶?????????????
					Ci += matrix_A[low_spot][m_term] * matrix_B[m_term][column_spot];

				}


				// ????´?C???Ci???????´?
				matrix_C[low_spot][column_spot] = Ci;

				// ??????
				System.out.print(matrix_C[low_spot][column_spot]);

				//AOJ???????????¨
				int remove_blank_last=column_l-1;

				//???????????????????´????????????????????¶??????????
				if(column_spot < remove_blank_last){

				System.out.print(" ");

				}

				//Ci????????????
				Ci=0;

			}

			// ????????????
			System.out.println("");

		}

	} BufferedReader input = new BufferedReader(new InputStreamReader(System.in)); input new BufferedReader(new InputStreamReader(System.in)) String first_line = input.readLine(); first_line input.readLine() input.readLine input String[] array_of_lo_col = first_line.split(" "); array_of_lo_col first_line.split(" ") first_line.split first_line " " int low_n = Integer.parseInt(array_of_lo_col[0]); low_n Integer.parseInt(array_of_lo_col[0]) Integer.parseInt Integer array_of_lo_col[0] array_of_lo_col 0 int column_or_row_m = Integer.parseInt(array_of_lo_col[1]); column_or_row_m Integer.parseInt(array_of_lo_col[1]) Integer.parseInt Integer array_of_lo_col[1] array_of_lo_col 1 int column_l = Integer.parseInt(array_of_lo_col[2]); column_l Integer.parseInt(array_of_lo_col[2]) Integer.parseInt Integer array_of_lo_col[2] array_of_lo_col 2 long[][] matrix_A = new long[low_n][column_or_row_m]; matrix_A new long[low_n][column_or_row_m] low_n column_or_row_m long[][] matrix_B = new long[column_or_row_m][column_l]; matrix_B new long[column_or_row_m][column_l] column_or_row_m column_l long[][] matrix_C = new long[low_n][column_l]; matrix_C new long[low_n][column_l] low_n column_l for (int low_spot = 0; low_spot < low_n; low_spot++) {

			// ??????A???????´???\???
			String elements_A = input.readLine();

			// ??\??????????????????A???????´????array_elements_A???????´?
			String[] array_elements_A = elements_A.split(" ");

			// ??????A???????´????????´?
			for (int column_spot = 0; column_spot < column_or_row_m; column_spot++) {

				// array_elements_A???????´????????????°??????long??????
				long element_A = Long.parseLong(array_elements_A[column_spot]);

				// ????´??????????A???????´?
				matrix_A[low_spot][column_spot] = element_A;

			}

		} int low_spot = 0; int low_spot = 0; low_spot 0 low_spot < low_n low_spot low_n low_spot++ low_spot++ low_spot {

			// ??????A???????´???\???
			String elements_A = input.readLine();

			// ??\??????????????????A???????´????array_elements_A???????´?
			String[] array_elements_A = elements_A.split(" ");

			// ??????A???????´????????´?
			for (int column_spot = 0; column_spot < column_or_row_m; column_spot++) {

				// array_elements_A???????´????????????°??????long??????
				long element_A = Long.parseLong(array_elements_A[column_spot]);

				// ????´??????????A???????´?
				matrix_A[low_spot][column_spot] = element_A;

			}

		} {

			// ??????A???????´???\???
			String elements_A = input.readLine();

			// ??\??????????????????A???????´????array_elements_A???????´?
			String[] array_elements_A = elements_A.split(" ");

			// ??????A???????´????????´?
			for (int column_spot = 0; column_spot < column_or_row_m; column_spot++) {

				// array_elements_A???????´????????????°??????long??????
				long element_A = Long.parseLong(array_elements_A[column_spot]);

				// ????´??????????A???????´?
				matrix_A[low_spot][column_spot] = element_A;

			}

		} String elements_A = input.readLine(); elements_A input.readLine() input.readLine input String[] array_elements_A = elements_A.split(" "); array_elements_A elements_A.split(" ") elements_A.split elements_A " " for (int column_spot = 0; column_spot < column_or_row_m; column_spot++) {

				// array_elements_A???????´????????????°??????long??????
				long element_A = Long.parseLong(array_elements_A[column_spot]);

				// ????´??????????A???????´?
				matrix_A[low_spot][column_spot] = element_A;

			} int column_spot = 0; int column_spot = 0; column_spot 0 column_spot < column_or_row_m column_spot column_or_row_m column_spot++ column_spot++ column_spot {

				// array_elements_A???????´????????????°??????long??????
				long element_A = Long.parseLong(array_elements_A[column_spot]);

				// ????´??????????A???????´?
				matrix_A[low_spot][column_spot] = element_A;

			} {

				// array_elements_A???????´????????????°??????long??????
				long element_A = Long.parseLong(array_elements_A[column_spot]);

				// ????´??????????A???????´?
				matrix_A[low_spot][column_spot] = element_A;

			} long element_A = Long.parseLong(array_elements_A[column_spot]); element_A Long.parseLong(array_elements_A[column_spot]) Long.parseLong Long array_elements_A[column_spot] array_elements_A column_spot matrix_A[low_spot][column_spot] = element_A matrix_A[low_spot][column_spot] matrix_A[low_spot] matrix_A low_spot column_spot element_A for (int low_spot = 0; low_spot < column_or_row_m; low_spot++) {

			// ??????B???????´???\???
			String elements_B = input.readLine();

			// ??\??????????????????B???????´????array_elements_A???????´?
			String[] array_elements_B = elements_B.split(" ");

			// ??????B???????´????????´?
			for (int column_spot = 0; column_spot < column_l; column_spot++) {

				// array_elements_B???????´????????????°??????long??????
				long element_B = Long.parseLong(array_elements_B[column_spot]);

				// ????´??????????B???????´?
				matrix_B[low_spot][column_spot] = element_B;

			}

		} int low_spot = 0; int low_spot = 0; low_spot 0 low_spot < column_or_row_m low_spot column_or_row_m low_spot++ low_spot++ low_spot {

			// ??????B???????´???\???
			String elements_B = input.readLine();

			// ??\??????????????????B???????´????array_elements_A???????´?
			String[] array_elements_B = elements_B.split(" ");

			// ??????B???????´????????´?
			for (int column_spot = 0; column_spot < column_l; column_spot++) {

				// array_elements_B???????´????????????°??????long??????
				long element_B = Long.parseLong(array_elements_B[column_spot]);

				// ????´??????????B???????´?
				matrix_B[low_spot][column_spot] = element_B;

			}

		} {

			// ??????B???????´???\???
			String elements_B = input.readLine();

			// ??\??????????????????B???????´????array_elements_A???????´?
			String[] array_elements_B = elements_B.split(" ");

			// ??????B???????´????????´?
			for (int column_spot = 0; column_spot < column_l; column_spot++) {

				// array_elements_B???????´????????????°??????long??????
				long element_B = Long.parseLong(array_elements_B[column_spot]);

				// ????´??????????B???????´?
				matrix_B[low_spot][column_spot] = element_B;

			}

		} String elements_B = input.readLine(); elements_B input.readLine() input.readLine input String[] array_elements_B = elements_B.split(" "); array_elements_B elements_B.split(" ") elements_B.split elements_B " " for (int column_spot = 0; column_spot < column_l; column_spot++) {

				// array_elements_B???????´????????????°??????long??????
				long element_B = Long.parseLong(array_elements_B[column_spot]);

				// ????´??????????B???????´?
				matrix_B[low_spot][column_spot] = element_B;

			} int column_spot = 0; int column_spot = 0; column_spot 0 column_spot < column_l column_spot column_l column_spot++ column_spot++ column_spot {

				// array_elements_B???????´????????????°??????long??????
				long element_B = Long.parseLong(array_elements_B[column_spot]);

				// ????´??????????B???????´?
				matrix_B[low_spot][column_spot] = element_B;

			} {

				// array_elements_B???????´????????????°??????long??????
				long element_B = Long.parseLong(array_elements_B[column_spot]);

				// ????´??????????B???????´?
				matrix_B[low_spot][column_spot] = element_B;

			} long element_B = Long.parseLong(array_elements_B[column_spot]); element_B Long.parseLong(array_elements_B[column_spot]) Long.parseLong Long array_elements_B[column_spot] array_elements_B column_spot matrix_B[low_spot][column_spot] = element_B matrix_B[low_spot][column_spot] matrix_B[low_spot] matrix_B low_spot column_spot element_B long Ci = 0; Ci 0 for (int low_spot = 0; low_spot < low_n; low_spot++) {

			// ??????C?????????????´?
			for (int column_spot = 0; column_spot < column_l; column_spot++) {

				// C?????????????´????A????????¨B?????????????????????
				for (int m_term = 0; m_term < column_or_row_m; m_term++) {


					// Ci???????´??????????matrixA,B?????????????¶?????????????
					Ci += matrix_A[low_spot][m_term] * matrix_B[m_term][column_spot];

				}


				// ????´?C???Ci???????´?
				matrix_C[low_spot][column_spot] = Ci;

				// ??????
				System.out.print(matrix_C[low_spot][column_spot]);

				//AOJ???????????¨
				int remove_blank_last=column_l-1;

				//???????????????????´????????????????????¶??????????
				if(column_spot < remove_blank_last){

				System.out.print(" ");

				}

				//Ci????????????
				Ci=0;

			}

			// ????????????
			System.out.println("");

		} int low_spot = 0; int low_spot = 0; low_spot 0 low_spot < low_n low_spot low_n low_spot++ low_spot++ low_spot {

			// ??????C?????????????´?
			for (int column_spot = 0; column_spot < column_l; column_spot++) {

				// C?????????????´????A????????¨B?????????????????????
				for (int m_term = 0; m_term < column_or_row_m; m_term++) {


					// Ci???????´??????????matrixA,B?????????????¶?????????????
					Ci += matrix_A[low_spot][m_term] * matrix_B[m_term][column_spot];

				}


				// ????´?C???Ci???????´?
				matrix_C[low_spot][column_spot] = Ci;

				// ??????
				System.out.print(matrix_C[low_spot][column_spot]);

				//AOJ???????????¨
				int remove_blank_last=column_l-1;

				//???????????????????´????????????????????¶??????????
				if(column_spot < remove_blank_last){

				System.out.print(" ");

				}

				//Ci????????????
				Ci=0;

			}

			// ????????????
			System.out.println("");

		} {

			// ??????C?????????????´?
			for (int column_spot = 0; column_spot < column_l; column_spot++) {

				// C?????????????´????A????????¨B?????????????????????
				for (int m_term = 0; m_term < column_or_row_m; m_term++) {


					// Ci???????´??????????matrixA,B?????????????¶?????????????
					Ci += matrix_A[low_spot][m_term] * matrix_B[m_term][column_spot];

				}


				// ????´?C???Ci???????´?
				matrix_C[low_spot][column_spot] = Ci;

				// ??????
				System.out.print(matrix_C[low_spot][column_spot]);

				//AOJ???????????¨
				int remove_blank_last=column_l-1;

				//???????????????????´????????????????????¶??????????
				if(column_spot < remove_blank_last){

				System.out.print(" ");

				}

				//Ci????????????
				Ci=0;

			}

			// ????????????
			System.out.println("");

		} for (int column_spot = 0; column_spot < column_l; column_spot++) {

				// C?????????????´????A????????¨B?????????????????????
				for (int m_term = 0; m_term < column_or_row_m; m_term++) {


					// Ci???????´??????????matrixA,B?????????????¶?????????????
					Ci += matrix_A[low_spot][m_term] * matrix_B[m_term][column_spot];

				}


				// ????´?C???Ci???????´?
				matrix_C[low_spot][column_spot] = Ci;

				// ??????
				System.out.print(matrix_C[low_spot][column_spot]);

				//AOJ???????????¨
				int remove_blank_last=column_l-1;

				//???????????????????´????????????????????¶??????????
				if(column_spot < remove_blank_last){

				System.out.print(" ");

				}

				//Ci????????????
				Ci=0;

			} int column_spot = 0; int column_spot = 0; column_spot 0 column_spot < column_l column_spot column_l column_spot++ column_spot++ column_spot {

				// C?????????????´????A????????¨B?????????????????????
				for (int m_term = 0; m_term < column_or_row_m; m_term++) {


					// Ci???????´??????????matrixA,B?????????????¶?????????????
					Ci += matrix_A[low_spot][m_term] * matrix_B[m_term][column_spot];

				}


				// ????´?C???Ci???????´?
				matrix_C[low_spot][column_spot] = Ci;

				// ??????
				System.out.print(matrix_C[low_spot][column_spot]);

				//AOJ???????????¨
				int remove_blank_last=column_l-1;

				//???????????????????´????????????????????¶??????????
				if(column_spot < remove_blank_last){

				System.out.print(" ");

				}

				//Ci????????????
				Ci=0;

			} {

				// C?????????????´????A????????¨B?????????????????????
				for (int m_term = 0; m_term < column_or_row_m; m_term++) {


					// Ci???????´??????????matrixA,B?????????????¶?????????????
					Ci += matrix_A[low_spot][m_term] * matrix_B[m_term][column_spot];

				}


				// ????´?C???Ci???????´?
				matrix_C[low_spot][column_spot] = Ci;

				// ??????
				System.out.print(matrix_C[low_spot][column_spot]);

				//AOJ???????????¨
				int remove_blank_last=column_l-1;

				//???????????????????´????????????????????¶??????????
				if(column_spot < remove_blank_last){

				System.out.print(" ");

				}

				//Ci????????????
				Ci=0;

			} for (int m_term = 0; m_term < column_or_row_m; m_term++) {


					// Ci???????´??????????matrixA,B?????????????¶?????????????
					Ci += matrix_A[low_spot][m_term] * matrix_B[m_term][column_spot];

				} int m_term = 0; int m_term = 0; m_term 0 m_term < column_or_row_m m_term column_or_row_m m_term++ m_term++ m_term {


					// Ci???????´??????????matrixA,B?????????????¶?????????????
					Ci += matrix_A[low_spot][m_term] * matrix_B[m_term][column_spot];

				} {


					// Ci???????´??????????matrixA,B?????????????¶?????????????
					Ci += matrix_A[low_spot][m_term] * matrix_B[m_term][column_spot];

				} Ci += matrix_A[low_spot][m_term] * matrix_B[m_term][column_spot] Ci matrix_A[low_spot][m_term] * matrix_B[m_term][column_spot] matrix_A[low_spot][m_term] matrix_A[low_spot] matrix_A low_spot m_term matrix_B[m_term][column_spot] matrix_B[m_term] matrix_B m_term column_spot matrix_C[low_spot][column_spot] = Ci matrix_C[low_spot][column_spot] matrix_C[low_spot] matrix_C low_spot column_spot Ci System.out.print(matrix_C[low_spot][column_spot]) System.out.print System.out System System.out matrix_C[low_spot][column_spot] matrix_C[low_spot] matrix_C low_spot column_spot int remove_blank_last=column_l-1; remove_blank_last column_l-1 column_l 1 if(column_spot < remove_blank_last){

				System.out.print(" ");

				} column_spot < remove_blank_last column_spot remove_blank_last {

				System.out.print(" ");

				} System.out.print(" ") System.out.print System.out System System.out " " Ci=0 Ci 0 System.out.println("") System.out.println System.out System System.out "" String[] args args public class Main {
	public static void main(String[] args) throws IOException {
		BufferedReader input = new BufferedReader(new InputStreamReader(System.in));

		// A,B,C?????????????????¨???????±?????????????
		String first_line = input.readLine();

		// ??\??????????´?
		String[] array_of_lo_col = first_line.split(" ");

		// ??????A,C?????????????????????
		int low_n = Integer.parseInt(array_of_lo_col[0]);

		// ??????A???????????????B?????????????????????
		int column_or_row_m = Integer.parseInt(array_of_lo_col[1]);

		// ??????B,C?????????????????????
		int column_l = Integer.parseInt(array_of_lo_col[2]);

		// ??????A???????¬??????????
		long[][] matrix_A = new long[low_n][column_or_row_m];

		// ??????B???????¬??????????
		long[][] matrix_B = new long[column_or_row_m][column_l];

		// ??????C???????¬??????????
		long[][] matrix_C = new long[low_n][column_l];

		// ??????C???Ci???????????¨?????????A?????\??????????????°??????????´?
		for (int low_spot = 0; low_spot < low_n; low_spot++) {

			// ??????A???????´???\???
			String elements_A = input.readLine();

			// ??\??????????????????A???????´????array_elements_A???????´?
			String[] array_elements_A = elements_A.split(" ");

			// ??????A???????´????????´?
			for (int column_spot = 0; column_spot < column_or_row_m; column_spot++) {

				// array_elements_A???????´????????????°??????long??????
				long element_A = Long.parseLong(array_elements_A[column_spot]);

				// ????´??????????A???????´?
				matrix_A[low_spot][column_spot] = element_A;

			}

		}

		// ??????C???Ci???????????¨?????????B?????\??????????????°??????????´?
		for (int low_spot = 0; low_spot < column_or_row_m; low_spot++) {

			// ??????B???????´???\???
			String elements_B = input.readLine();

			// ??\??????????????????B???????´????array_elements_A???????´?
			String[] array_elements_B = elements_B.split(" ");

			// ??????B???????´????????´?
			for (int column_spot = 0; column_spot < column_l; column_spot++) {

				// array_elements_B???????´????????????°??????long??????
				long element_B = Long.parseLong(array_elements_B[column_spot]);

				// ????´??????????B???????´?
				matrix_B[low_spot][column_spot] = element_B;

			}

		}

		// C?????????????´???¨
		long Ci = 0;

		// ??????C???????´?
		for (int low_spot = 0; low_spot < low_n; low_spot++) {

			// ??????C?????????????´?
			for (int column_spot = 0; column_spot < column_l; column_spot++) {

				// C?????????????´????A????????¨B?????????????????????
				for (int m_term = 0; m_term < column_or_row_m; m_term++) {


					// Ci???????´??????????matrixA,B?????????????¶?????????????
					Ci += matrix_A[low_spot][m_term] * matrix_B[m_term][column_spot];

				}


				// ????´?C???Ci???????´?
				matrix_C[low_spot][column_spot] = Ci;

				// ??????
				System.out.print(matrix_C[low_spot][column_spot]);

				//AOJ???????????¨
				int remove_blank_last=column_l-1;

				//???????????????????´????????????????????¶??????????
				if(column_spot < remove_blank_last){

				System.out.print(" ");

				}

				//Ci????????????
				Ci=0;

			}

			// ????????????
			System.out.println("");

		}

	}

} public class Main {
	public static void main(String[] args) throws IOException {
		BufferedReader input = new BufferedReader(new InputStreamReader(System.in));

		// A,B,C?????????????????¨???????±?????????????
		String first_line = input.readLine();

		// ??\??????????´?
		String[] array_of_lo_col = first_line.split(" ");

		// ??????A,C?????????????????????
		int low_n = Integer.parseInt(array_of_lo_col[0]);

		// ??????A???????????????B?????????????????????
		int column_or_row_m = Integer.parseInt(array_of_lo_col[1]);

		// ??????B,C?????????????????????
		int column_l = Integer.parseInt(array_of_lo_col[2]);

		// ??????A???????¬??????????
		long[][] matrix_A = new long[low_n][column_or_row_m];

		// ??????B???????¬??????????
		long[][] matrix_B = new long[column_or_row_m][column_l];

		// ??????C???????¬??????????
		long[][] matrix_C = new long[low_n][column_l];

		// ??????C???Ci???????????¨?????????A?????\??????????????°??????????´?
		for (int low_spot = 0; low_spot < low_n; low_spot++) {

			// ??????A???????´???\???
			String elements_A = input.readLine();

			// ??\??????????????????A???????´????array_elements_A???????´?
			String[] array_elements_A = elements_A.split(" ");

			// ??????A???????´????????´?
			for (int column_spot = 0; column_spot < column_or_row_m; column_spot++) {

				// array_elements_A???????´????????????°??????long??????
				long element_A = Long.parseLong(array_elements_A[column_spot]);

				// ????´??????????A???????´?
				matrix_A[low_spot][column_spot] = element_A;

			}

		}

		// ??????C???Ci???????????¨?????????B?????\??????????????°??????????´?
		for (int low_spot = 0; low_spot < column_or_row_m; low_spot++) {

			// ??????B???????´???\???
			String elements_B = input.readLine();

			// ??\??????????????????B???????´????array_elements_A???????´?
			String[] array_elements_B = elements_B.split(" ");

			// ??????B???????´????????´?
			for (int column_spot = 0; column_spot < column_l; column_spot++) {

				// array_elements_B???????´????????????°??????long??????
				long element_B = Long.parseLong(array_elements_B[column_spot]);

				// ????´??????????B???????´?
				matrix_B[low_spot][column_spot] = element_B;

			}

		}

		// C?????????????´???¨
		long Ci = 0;

		// ??????C???????´?
		for (int low_spot = 0; low_spot < low_n; low_spot++) {

			// ??????C?????????????´?
			for (int column_spot = 0; column_spot < column_l; column_spot++) {

				// C?????????????´????A????????¨B?????????????????????
				for (int m_term = 0; m_term < column_or_row_m; m_term++) {


					// Ci???????´??????????matrixA,B?????????????¶?????????????
					Ci += matrix_A[low_spot][m_term] * matrix_B[m_term][column_spot];

				}


				// ????´?C???Ci???????´?
				matrix_C[low_spot][column_spot] = Ci;

				// ??????
				System.out.print(matrix_C[low_spot][column_spot]);

				//AOJ???????????¨
				int remove_blank_last=column_l-1;

				//???????????????????´????????????????????¶??????????
				if(column_spot < remove_blank_last){

				System.out.print(" ");

				}

				//Ci????????????
				Ci=0;

			}

			// ????????????
			System.out.println("");

		}

	}

} Main
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {
	public static void main(String[] args) throws IOException {
		BufferedReader input = new BufferedReader(new InputStreamReader(System.in));

		// A,B,C?????????????????¨???????±?????????????
		String first_line = input.readLine();

		// ??\??????????´?
		String[] array_of_lo_col = first_line.split(" ");

		// ??????A,C?????????????????????
		int low_n = Integer.parseInt(array_of_lo_col[0]);

		// ??????A???????????????B?????????????????????
		int column_or_row_m = Integer.parseInt(array_of_lo_col[1]);

		// ??????B,C?????????????????????
		int column_l = Integer.parseInt(array_of_lo_col[2]);

		// ??????A???????¬??????????
		long[][] matrix_A = new long[low_n][column_or_row_m];

		// ??????B???????¬??????????
		long[][] matrix_B = new long[column_or_row_m][column_l];

		// ??????C???????¬??????????
		long[][] matrix_C = new long[low_n][column_l];

		// ??????C???Ci???????????¨?????????A?????\??????????????°??????????´?
		for (int low_spot = 0; low_spot < low_n; low_spot++) {

			// ??????A???????´???\???
			String elements_A = input.readLine();

			// ??\??????????????????A???????´????array_elements_A???????´?
			String[] array_elements_A = elements_A.split(" ");

			// ??????A???????´????????´?
			for (int column_spot = 0; column_spot < column_or_row_m; column_spot++) {

				// array_elements_A???????´????????????°??????long??????
				long element_A = Long.parseLong(array_elements_A[column_spot]);

				// ????´??????????A???????´?
				matrix_A[low_spot][column_spot] = element_A;

			}

		}

		// ??????C???Ci???????????¨?????????B?????\??????????????°??????????´?
		for (int low_spot = 0; low_spot < column_or_row_m; low_spot++) {

			// ??????B???????´???\???
			String elements_B = input.readLine();

			// ??\??????????????????B???????´????array_elements_A???????´?
			String[] array_elements_B = elements_B.split(" ");

			// ??????B???????´????????´?
			for (int column_spot = 0; column_spot < column_l; column_spot++) {

				// array_elements_B???????´????????????°??????long??????
				long element_B = Long.parseLong(array_elements_B[column_spot]);

				// ????´??????????B???????´?
				matrix_B[low_spot][column_spot] = element_B;

			}

		}

		// C?????????????´???¨
		long Ci = 0;

		// ??????C???????´?
		for (int low_spot = 0; low_spot < low_n; low_spot++) {

			// ??????C?????????????´?
			for (int column_spot = 0; column_spot < column_l; column_spot++) {

				// C?????????????´????A????????¨B?????????????????????
				for (int m_term = 0; m_term < column_or_row_m; m_term++) {


					// Ci???????´??????????matrixA,B?????????????¶?????????????
					Ci += matrix_A[low_spot][m_term] * matrix_B[m_term][column_spot];

				}


				// ????´?C???Ci???????´?
				matrix_C[low_spot][column_spot] = Ci;

				// ??????
				System.out.print(matrix_C[low_spot][column_spot]);

				//AOJ???????????¨
				int remove_blank_last=column_l-1;

				//???????????????????´????????????????????¶??????????
				if(column_spot < remove_blank_last){

				System.out.print(" ");

				}

				//Ci????????????
				Ci=0;

			}

			// ????????????
			System.out.println("");

		}

	}

}