import java.util.*;

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

		int n = sc.nextInt(); int m = sc.nextInt(); int l = sc.nextInt();
		int[][] row = new int[n][m];
		for (int i=0; i<n; i++) {
			for (int j=0; j<m; j++) {
				row[i][j] = sc.nextInt();
			}
		}
		int[][] column = new int[m][l];
		for (int i=0; i<m; i++) {
			for (int j=0; j<l; j++) {
				column[i][j] = sc.nextInt();
			}
		}
		
		long[][] ans = calcMatrix(row, column, "*");
		
		for (int i=0; i<n; i++) {
			StringBuilder sb = new StringBuilder();
			for (int j=0; j<l; j++) {
				sb.append((j==0?"":" ")+(ans[i][j]));
			}
			System.out.println(sb);
		}
		
	}

	static long[][] calcMatrix(int[][] row, int[][] column, String operator) {
		//計算が正常におこなえない行・列を受け取った場合のエラー処理は施してません

		int rowH = row.length; int rowW = row[0].length;
		int columnH = column.length; int columnW = column[0].length;
		long[][] result = null;

		if (operator.equals("+") || operator.equals("-")) {
			result = new long[rowH][rowW];
		}
		else if (operator.equals("-")) {
			result = new long[rowH][rowW];
		}
		else if (operator.equals("*")) {
			result = new long[rowH][columnW];
			for (int i=0; i<rowH; i++) {
				for (int j=0; j<columnW; j++) {
					long sum = 0;
					for (int k=0; k<rowW; k++) {
						sum += row[i][k] * column[k][j];
					}
					result[i][j] = sum;
				}
			}
		}
		return result;
		
	}

} import java.util.*; util.* java class Main {
	static Scanner sc = new Scanner(System.in);
	public static void main(String[] args) {

		int n = sc.nextInt(); int m = sc.nextInt(); int l = sc.nextInt();
		int[][] row = new int[n][m];
		for (int i=0; i<n; i++) {
			for (int j=0; j<m; j++) {
				row[i][j] = sc.nextInt();
			}
		}
		int[][] column = new int[m][l];
		for (int i=0; i<m; i++) {
			for (int j=0; j<l; j++) {
				column[i][j] = sc.nextInt();
			}
		}
		
		long[][] ans = calcMatrix(row, column, "*");
		
		for (int i=0; i<n; i++) {
			StringBuilder sb = new StringBuilder();
			for (int j=0; j<l; j++) {
				sb.append((j==0?"":" ")+(ans[i][j]));
			}
			System.out.println(sb);
		}
		
	}

	static long[][] calcMatrix(int[][] row, int[][] column, String operator) {
		//計算が正常におこなえない行・列を受け取った場合のエラー処理は施してません

		int rowH = row.length; int rowW = row[0].length;
		int columnH = column.length; int columnW = column[0].length;
		long[][] result = null;

		if (operator.equals("+") || operator.equals("-")) {
			result = new long[rowH][rowW];
		}
		else if (operator.equals("-")) {
			result = new long[rowH][rowW];
		}
		else if (operator.equals("*")) {
			result = new long[rowH][columnW];
			for (int i=0; i<rowH; i++) {
				for (int j=0; j<columnW; j++) {
					long sum = 0;
					for (int k=0; k<rowW; k++) {
						sum += row[i][k] * column[k][j];
					}
					result[i][j] = sum;
				}
			}
		}
		return result;
		
	}

} Main static Scanner sc = new Scanner(System.in); sc new Scanner(System.in) public static void main(String[] args) {

		int n = sc.nextInt(); int m = sc.nextInt(); int l = sc.nextInt();
		int[][] row = new int[n][m];
		for (int i=0; i<n; i++) {
			for (int j=0; j<m; j++) {
				row[i][j] = sc.nextInt();
			}
		}
		int[][] column = new int[m][l];
		for (int i=0; i<m; i++) {
			for (int j=0; j<l; j++) {
				column[i][j] = sc.nextInt();
			}
		}
		
		long[][] ans = calcMatrix(row, column, "*");
		
		for (int i=0; i<n; i++) {
			StringBuilder sb = new StringBuilder();
			for (int j=0; j<l; j++) {
				sb.append((j==0?"":" ")+(ans[i][j]));
			}
			System.out.println(sb);
		}
		
	} main {

		int n = sc.nextInt(); int m = sc.nextInt(); int l = sc.nextInt();
		int[][] row = new int[n][m];
		for (int i=0; i<n; i++) {
			for (int j=0; j<m; j++) {
				row[i][j] = sc.nextInt();
			}
		}
		int[][] column = new int[m][l];
		for (int i=0; i<m; i++) {
			for (int j=0; j<l; j++) {
				column[i][j] = sc.nextInt();
			}
		}
		
		long[][] ans = calcMatrix(row, column, "*");
		
		for (int i=0; i<n; i++) {
			StringBuilder sb = new StringBuilder();
			for (int j=0; j<l; j++) {
				sb.append((j==0?"":" ")+(ans[i][j]));
			}
			System.out.println(sb);
		}
		
	} int n = sc.nextInt(); n sc.nextInt() sc.nextInt sc int m = sc.nextInt(); m sc.nextInt() sc.nextInt sc int l = sc.nextInt(); l sc.nextInt() sc.nextInt sc int[][] row = new int[n][m]; row new int[n][m] n m for (int i=0; i<n; i++) {
			for (int j=0; j<m; j++) {
				row[i][j] = sc.nextInt();
			}
		} int i=0; int i=0; i 0 i<n i n i++ i++ i {
			for (int j=0; j<m; j++) {
				row[i][j] = sc.nextInt();
			}
		} {
			for (int j=0; j<m; j++) {
				row[i][j] = sc.nextInt();
			}
		} for (int j=0; j<m; j++) {
				row[i][j] = sc.nextInt();
			} int j=0; int j=0; j 0 j<m j m j++ j++ j {
				row[i][j] = sc.nextInt();
			} {
				row[i][j] = sc.nextInt();
			} row[i][j] = sc.nextInt() row[i][j] row[i] row i j sc.nextInt() sc.nextInt sc int[][] column = new int[m][l]; column new int[m][l] m l for (int i=0; i<m; i++) {
			for (int j=0; j<l; j++) {
				column[i][j] = sc.nextInt();
			}
		} int i=0; int i=0; i 0 i<m i m i++ i++ i {
			for (int j=0; j<l; j++) {
				column[i][j] = sc.nextInt();
			}
		} {
			for (int j=0; j<l; j++) {
				column[i][j] = sc.nextInt();
			}
		} for (int j=0; j<l; j++) {
				column[i][j] = sc.nextInt();
			} int j=0; int j=0; j 0 j<l j l j++ j++ j {
				column[i][j] = sc.nextInt();
			} {
				column[i][j] = sc.nextInt();
			} column[i][j] = sc.nextInt() column[i][j] column[i] column i j sc.nextInt() sc.nextInt sc long[][] ans = calcMatrix(row, column, "*"); ans calcMatrix(row, column, "*") calcMatrix row column "*" for (int i=0; i<n; i++) {
			StringBuilder sb = new StringBuilder();
			for (int j=0; j<l; j++) {
				sb.append((j==0?"":" ")+(ans[i][j]));
			}
			System.out.println(sb);
		} int i=0; int i=0; i 0 i<n i n i++ i++ i {
			StringBuilder sb = new StringBuilder();
			for (int j=0; j<l; j++) {
				sb.append((j==0?"":" ")+(ans[i][j]));
			}
			System.out.println(sb);
		} {
			StringBuilder sb = new StringBuilder();
			for (int j=0; j<l; j++) {
				sb.append((j==0?"":" ")+(ans[i][j]));
			}
			System.out.println(sb);
		} StringBuilder sb = new StringBuilder(); sb new StringBuilder() for (int j=0; j<l; j++) {
				sb.append((j==0?"":" ")+(ans[i][j]));
			} int j=0; int j=0; j 0 j<l j l j++ j++ j {
				sb.append((j==0?"":" ")+(ans[i][j]));
			} {
				sb.append((j==0?"":" ")+(ans[i][j]));
			} sb.append((j==0?"":" ")+(ans[i][j])) sb.append sb (j==0?"":" ")+(ans[i][j]) (j==0?"":" ") j==0 j 0 "" " " (ans[i][j]) ans[i] ans i j System.out.println(sb) System.out.println System.out System System.out sb String[] args args static long[][] calcMatrix(int[][] row, int[][] column, String operator) {
		//計算が正常におこなえない行・列を受け取った場合のエラー処理は施してません

		int rowH = row.length; int rowW = row[0].length;
		int columnH = column.length; int columnW = column[0].length;
		long[][] result = null;

		if (operator.equals("+") || operator.equals("-")) {
			result = new long[rowH][rowW];
		}
		else if (operator.equals("-")) {
			result = new long[rowH][rowW];
		}
		else if (operator.equals("*")) {
			result = new long[rowH][columnW];
			for (int i=0; i<rowH; i++) {
				for (int j=0; j<columnW; j++) {
					long sum = 0;
					for (int k=0; k<rowW; k++) {
						sum += row[i][k] * column[k][j];
					}
					result[i][j] = sum;
				}
			}
		}
		return result;
		
	} calcMatrix {
		//計算が正常におこなえない行・列を受け取った場合のエラー処理は施してません

		int rowH = row.length; int rowW = row[0].length;
		int columnH = column.length; int columnW = column[0].length;
		long[][] result = null;

		if (operator.equals("+") || operator.equals("-")) {
			result = new long[rowH][rowW];
		}
		else if (operator.equals("-")) {
			result = new long[rowH][rowW];
		}
		else if (operator.equals("*")) {
			result = new long[rowH][columnW];
			for (int i=0; i<rowH; i++) {
				for (int j=0; j<columnW; j++) {
					long sum = 0;
					for (int k=0; k<rowW; k++) {
						sum += row[i][k] * column[k][j];
					}
					result[i][j] = sum;
				}
			}
		}
		return result;
		
	} int rowH = row.length; rowH row.length row row.length int rowW = row[0].length; rowW row[0].length row[0] row 0 row[0].length int columnH = column.length; columnH column.length column column.length int columnW = column[0].length; columnW column[0].length column[0] column 0 column[0].length long[][] result = null; result null if (operator.equals("+") || operator.equals("-")) {
			result = new long[rowH][rowW];
		}
		else if (operator.equals("-")) {
			result = new long[rowH][rowW];
		}
		else if (operator.equals("*")) {
			result = new long[rowH][columnW];
			for (int i=0; i<rowH; i++) {
				for (int j=0; j<columnW; j++) {
					long sum = 0;
					for (int k=0; k<rowW; k++) {
						sum += row[i][k] * column[k][j];
					}
					result[i][j] = sum;
				}
			}
		} operator.equals("+") || operator.equals("-") operator.equals("+") operator.equals operator "+" operator.equals("-") operator.equals operator "-" {
			result = new long[rowH][rowW];
		} result = new long[rowH][rowW] result new long[rowH][rowW] rowH rowW if (operator.equals("-")) {
			result = new long[rowH][rowW];
		}
		else if (operator.equals("*")) {
			result = new long[rowH][columnW];
			for (int i=0; i<rowH; i++) {
				for (int j=0; j<columnW; j++) {
					long sum = 0;
					for (int k=0; k<rowW; k++) {
						sum += row[i][k] * column[k][j];
					}
					result[i][j] = sum;
				}
			}
		} operator.equals("-") operator.equals operator "-" {
			result = new long[rowH][rowW];
		} result = new long[rowH][rowW] result new long[rowH][rowW] rowH rowW if (operator.equals("*")) {
			result = new long[rowH][columnW];
			for (int i=0; i<rowH; i++) {
				for (int j=0; j<columnW; j++) {
					long sum = 0;
					for (int k=0; k<rowW; k++) {
						sum += row[i][k] * column[k][j];
					}
					result[i][j] = sum;
				}
			}
		} operator.equals("*") operator.equals operator "*" {
			result = new long[rowH][columnW];
			for (int i=0; i<rowH; i++) {
				for (int j=0; j<columnW; j++) {
					long sum = 0;
					for (int k=0; k<rowW; k++) {
						sum += row[i][k] * column[k][j];
					}
					result[i][j] = sum;
				}
			}
		} result = new long[rowH][columnW] result new long[rowH][columnW] rowH columnW for (int i=0; i<rowH; i++) {
				for (int j=0; j<columnW; j++) {
					long sum = 0;
					for (int k=0; k<rowW; k++) {
						sum += row[i][k] * column[k][j];
					}
					result[i][j] = sum;
				}
			} int i=0; int i=0; i 0 i<rowH i rowH i++ i++ i {
				for (int j=0; j<columnW; j++) {
					long sum = 0;
					for (int k=0; k<rowW; k++) {
						sum += row[i][k] * column[k][j];
					}
					result[i][j] = sum;
				}
			} {
				for (int j=0; j<columnW; j++) {
					long sum = 0;
					for (int k=0; k<rowW; k++) {
						sum += row[i][k] * column[k][j];
					}
					result[i][j] = sum;
				}
			} for (int j=0; j<columnW; j++) {
					long sum = 0;
					for (int k=0; k<rowW; k++) {
						sum += row[i][k] * column[k][j];
					}
					result[i][j] = sum;
				} int j=0; int j=0; j 0 j<columnW j columnW j++ j++ j {
					long sum = 0;
					for (int k=0; k<rowW; k++) {
						sum += row[i][k] * column[k][j];
					}
					result[i][j] = sum;
				} {
					long sum = 0;
					for (int k=0; k<rowW; k++) {
						sum += row[i][k] * column[k][j];
					}
					result[i][j] = sum;
				} long sum = 0; sum 0 for (int k=0; k<rowW; k++) {
						sum += row[i][k] * column[k][j];
					} int k=0; int k=0; k 0 k<rowW k rowW k++ k++ k {
						sum += row[i][k] * column[k][j];
					} {
						sum += row[i][k] * column[k][j];
					} sum += row[i][k] * column[k][j] sum row[i][k] * column[k][j] row[i][k] row[i] row i k column[k][j] column[k] column k j result[i][j] = sum result[i][j] result[i] result i j sum return result; result int[][] row row int[][] column column String operator operator
import java.util.*;

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

		int n = sc.nextInt(); int m = sc.nextInt(); int l = sc.nextInt();
		int[][] row = new int[n][m];
		for (int i=0; i<n; i++) {
			for (int j=0; j<m; j++) {
				row[i][j] = sc.nextInt();
			}
		}
		int[][] column = new int[m][l];
		for (int i=0; i<m; i++) {
			for (int j=0; j<l; j++) {
				column[i][j] = sc.nextInt();
			}
		}
		
		long[][] ans = calcMatrix(row, column, "*");
		
		for (int i=0; i<n; i++) {
			StringBuilder sb = new StringBuilder();
			for (int j=0; j<l; j++) {
				sb.append((j==0?"":" ")+(ans[i][j]));
			}
			System.out.println(sb);
		}
		
	}

	static long[][] calcMatrix(int[][] row, int[][] column, String operator) {
		//計算が正常におこなえない行・列を受け取った場合のエラー処理は施してません

		int rowH = row.length; int rowW = row[0].length;
		int columnH = column.length; int columnW = column[0].length;
		long[][] result = null;

		if (operator.equals("+") || operator.equals("-")) {
			result = new long[rowH][rowW];
		}
		else if (operator.equals("-")) {
			result = new long[rowH][rowW];
		}
		else if (operator.equals("*")) {
			result = new long[rowH][columnW];
			for (int i=0; i<rowH; i++) {
				for (int j=0; j<columnW; j++) {
					long sum = 0;
					for (int k=0; k<rowW; k++) {
						sum += row[i][k] * column[k][j];
					}
					result[i][j] = sum;
				}
			}
		}
		return result;
		
	}

}
