import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		// 入力導入部
		Scanner sc = new Scanner(System.in);

		int n = sc.nextInt();
		int m = sc.nextInt();
		int l = sc.nextInt();

		// /////////////////////////////////////////////////////////////////
		// 計算部 x=n+n-i+n-l
		int[][] a, b;
		a = new int[n][m];
		b = new int[m][l];
		long[][] c = new long[n][l];

		for (int s = 0; s < n; s++) {
			for (int t = 0; t < m; t++) {
				a[s][t] = sc.nextInt();
			}
		}

		for (int s = 0; s < m; s++) {
			for (int t = 0; t < l; t++) {
				b[s][t] = sc.nextInt();
			}
		}
		sc.close();
		// ////配列Cを作成する
		long sum;
		for (int x = 0; x < n; x++) {
			for (int y = 0; y < l; y++) {
				sum = 0;
				for (int i = 0; i < m; i++) {
					sum += a[x][i] * b[i][y];
				}
				c[x][y] = sum;
			}
		}

		for (int i = 0; i < n; i++) {
			for (int s = 0; s < l; s++) {
				if (s == 0)
					System.out.print(c[i][s]);
				else
					System.out.print(" " + c[i][s]);
			}
			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 n = sc.nextInt();
		int m = sc.nextInt();
		int l = sc.nextInt();

		// /////////////////////////////////////////////////////////////////
		// 計算部 x=n+n-i+n-l
		int[][] a, b;
		a = new int[n][m];
		b = new int[m][l];
		long[][] c = new long[n][l];

		for (int s = 0; s < n; s++) {
			for (int t = 0; t < m; t++) {
				a[s][t] = sc.nextInt();
			}
		}

		for (int s = 0; s < m; s++) {
			for (int t = 0; t < l; t++) {
				b[s][t] = sc.nextInt();
			}
		}
		sc.close();
		// ////配列Cを作成する
		long sum;
		for (int x = 0; x < n; x++) {
			for (int y = 0; y < l; y++) {
				sum = 0;
				for (int i = 0; i < m; i++) {
					sum += a[x][i] * b[i][y];
				}
				c[x][y] = sum;
			}
		}

		for (int i = 0; i < n; i++) {
			for (int s = 0; s < l; s++) {
				if (s == 0)
					System.out.print(c[i][s]);
				else
					System.out.print(" " + c[i][s]);
			}
			System.out.println();
		}
	}
} Main public static void main(String[] args) {
		// 入力導入部
		Scanner sc = new Scanner(System.in);

		int n = sc.nextInt();
		int m = sc.nextInt();
		int l = sc.nextInt();

		// /////////////////////////////////////////////////////////////////
		// 計算部 x=n+n-i+n-l
		int[][] a, b;
		a = new int[n][m];
		b = new int[m][l];
		long[][] c = new long[n][l];

		for (int s = 0; s < n; s++) {
			for (int t = 0; t < m; t++) {
				a[s][t] = sc.nextInt();
			}
		}

		for (int s = 0; s < m; s++) {
			for (int t = 0; t < l; t++) {
				b[s][t] = sc.nextInt();
			}
		}
		sc.close();
		// ////配列Cを作成する
		long sum;
		for (int x = 0; x < n; x++) {
			for (int y = 0; y < l; y++) {
				sum = 0;
				for (int i = 0; i < m; i++) {
					sum += a[x][i] * b[i][y];
				}
				c[x][y] = sum;
			}
		}

		for (int i = 0; i < n; i++) {
			for (int s = 0; s < l; s++) {
				if (s == 0)
					System.out.print(c[i][s]);
				else
					System.out.print(" " + c[i][s]);
			}
			System.out.println();
		}
	} main {
		// 入力導入部
		Scanner sc = new Scanner(System.in);

		int n = sc.nextInt();
		int m = sc.nextInt();
		int l = sc.nextInt();

		// /////////////////////////////////////////////////////////////////
		// 計算部 x=n+n-i+n-l
		int[][] a, b;
		a = new int[n][m];
		b = new int[m][l];
		long[][] c = new long[n][l];

		for (int s = 0; s < n; s++) {
			for (int t = 0; t < m; t++) {
				a[s][t] = sc.nextInt();
			}
		}

		for (int s = 0; s < m; s++) {
			for (int t = 0; t < l; t++) {
				b[s][t] = sc.nextInt();
			}
		}
		sc.close();
		// ////配列Cを作成する
		long sum;
		for (int x = 0; x < n; x++) {
			for (int y = 0; y < l; y++) {
				sum = 0;
				for (int i = 0; i < m; i++) {
					sum += a[x][i] * b[i][y];
				}
				c[x][y] = sum;
			}
		}

		for (int i = 0; i < n; i++) {
			for (int s = 0; s < l; s++) {
				if (s == 0)
					System.out.print(c[i][s]);
				else
					System.out.print(" " + c[i][s]);
			}
			System.out.println();
		}
	} Scanner sc = new Scanner(System.in); sc new Scanner(System.in) 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[][] a a b; b a = new int[n][m] a new int[n][m] n m b = new int[m][l] b new int[m][l] m l long[][] c = new long[n][l]; c new long[n][l] n l for (int s = 0; s < n; s++) {
			for (int t = 0; t < m; t++) {
				a[s][t] = sc.nextInt();
			}
		} int s = 0; int s = 0; s 0 s < n s n s++ s++ s {
			for (int t = 0; t < m; t++) {
				a[s][t] = sc.nextInt();
			}
		} {
			for (int t = 0; t < m; t++) {
				a[s][t] = sc.nextInt();
			}
		} for (int t = 0; t < m; t++) {
				a[s][t] = sc.nextInt();
			} int t = 0; int t = 0; t 0 t < m t m t++ t++ t {
				a[s][t] = sc.nextInt();
			} {
				a[s][t] = sc.nextInt();
			} a[s][t] = sc.nextInt() a[s][t] a[s] a s t sc.nextInt() sc.nextInt sc for (int s = 0; s < m; s++) {
			for (int t = 0; t < l; t++) {
				b[s][t] = sc.nextInt();
			}
		} int s = 0; int s = 0; s 0 s < m s m s++ s++ s {
			for (int t = 0; t < l; t++) {
				b[s][t] = sc.nextInt();
			}
		} {
			for (int t = 0; t < l; t++) {
				b[s][t] = sc.nextInt();
			}
		} for (int t = 0; t < l; t++) {
				b[s][t] = sc.nextInt();
			} int t = 0; int t = 0; t 0 t < l t l t++ t++ t {
				b[s][t] = sc.nextInt();
			} {
				b[s][t] = sc.nextInt();
			} b[s][t] = sc.nextInt() b[s][t] b[s] b s t sc.nextInt() sc.nextInt sc sc.close() sc.close sc long sum; sum for (int x = 0; x < n; x++) {
			for (int y = 0; y < l; y++) {
				sum = 0;
				for (int i = 0; i < m; i++) {
					sum += a[x][i] * b[i][y];
				}
				c[x][y] = sum;
			}
		} int x = 0; int x = 0; x 0 x < n x n x++ x++ x {
			for (int y = 0; y < l; y++) {
				sum = 0;
				for (int i = 0; i < m; i++) {
					sum += a[x][i] * b[i][y];
				}
				c[x][y] = sum;
			}
		} {
			for (int y = 0; y < l; y++) {
				sum = 0;
				for (int i = 0; i < m; i++) {
					sum += a[x][i] * b[i][y];
				}
				c[x][y] = sum;
			}
		} for (int y = 0; y < l; y++) {
				sum = 0;
				for (int i = 0; i < m; i++) {
					sum += a[x][i] * b[i][y];
				}
				c[x][y] = sum;
			} int y = 0; int y = 0; y 0 y < l y l y++ y++ y {
				sum = 0;
				for (int i = 0; i < m; i++) {
					sum += a[x][i] * b[i][y];
				}
				c[x][y] = sum;
			} {
				sum = 0;
				for (int i = 0; i < m; i++) {
					sum += a[x][i] * b[i][y];
				}
				c[x][y] = sum;
			} sum = 0 sum 0 for (int i = 0; i < m; i++) {
					sum += a[x][i] * b[i][y];
				} int i = 0; int i = 0; i 0 i < m i m i++ i++ i {
					sum += a[x][i] * b[i][y];
				} {
					sum += a[x][i] * b[i][y];
				} sum += a[x][i] * b[i][y] sum a[x][i] * b[i][y] a[x][i] a[x] a x i b[i][y] b[i] b i y c[x][y] = sum c[x][y] c[x] c x y sum for (int i = 0; i < n; i++) {
			for (int s = 0; s < l; s++) {
				if (s == 0)
					System.out.print(c[i][s]);
				else
					System.out.print(" " + c[i][s]);
			}
			System.out.println();
		} int i = 0; int i = 0; i 0 i < n i n i++ i++ i {
			for (int s = 0; s < l; s++) {
				if (s == 0)
					System.out.print(c[i][s]);
				else
					System.out.print(" " + c[i][s]);
			}
			System.out.println();
		} {
			for (int s = 0; s < l; s++) {
				if (s == 0)
					System.out.print(c[i][s]);
				else
					System.out.print(" " + c[i][s]);
			}
			System.out.println();
		} for (int s = 0; s < l; s++) {
				if (s == 0)
					System.out.print(c[i][s]);
				else
					System.out.print(" " + c[i][s]);
			} int s = 0; int s = 0; s 0 s < l s l s++ s++ s {
				if (s == 0)
					System.out.print(c[i][s]);
				else
					System.out.print(" " + c[i][s]);
			} {
				if (s == 0)
					System.out.print(c[i][s]);
				else
					System.out.print(" " + c[i][s]);
			} if (s == 0)
					System.out.print(c[i][s]);
				else
					System.out.print(" " + c[i][s]); s == 0 s 0 System.out.print(c[i][s]) System.out.print System.out System System.out c[i][s] c[i] c i s System.out.print(" " + c[i][s]) System.out.print System.out System System.out " " + c[i][s] " " c[i][s] c[i] c i s 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 n = sc.nextInt();
		int m = sc.nextInt();
		int l = sc.nextInt();

		// /////////////////////////////////////////////////////////////////
		// 計算部 x=n+n-i+n-l
		int[][] a, b;
		a = new int[n][m];
		b = new int[m][l];
		long[][] c = new long[n][l];

		for (int s = 0; s < n; s++) {
			for (int t = 0; t < m; t++) {
				a[s][t] = sc.nextInt();
			}
		}

		for (int s = 0; s < m; s++) {
			for (int t = 0; t < l; t++) {
				b[s][t] = sc.nextInt();
			}
		}
		sc.close();
		// ////配列Cを作成する
		long sum;
		for (int x = 0; x < n; x++) {
			for (int y = 0; y < l; y++) {
				sum = 0;
				for (int i = 0; i < m; i++) {
					sum += a[x][i] * b[i][y];
				}
				c[x][y] = sum;
			}
		}

		for (int i = 0; i < n; i++) {
			for (int s = 0; s < l; s++) {
				if (s == 0)
					System.out.print(c[i][s]);
				else
					System.out.print(" " + c[i][s]);
			}
			System.out.println();
		}
	}
} public class Main {

	public static void main(String[] args) {
		// 入力導入部
		Scanner sc = new Scanner(System.in);

		int n = sc.nextInt();
		int m = sc.nextInt();
		int l = sc.nextInt();

		// /////////////////////////////////////////////////////////////////
		// 計算部 x=n+n-i+n-l
		int[][] a, b;
		a = new int[n][m];
		b = new int[m][l];
		long[][] c = new long[n][l];

		for (int s = 0; s < n; s++) {
			for (int t = 0; t < m; t++) {
				a[s][t] = sc.nextInt();
			}
		}

		for (int s = 0; s < m; s++) {
			for (int t = 0; t < l; t++) {
				b[s][t] = sc.nextInt();
			}
		}
		sc.close();
		// ////配列Cを作成する
		long sum;
		for (int x = 0; x < n; x++) {
			for (int y = 0; y < l; y++) {
				sum = 0;
				for (int i = 0; i < m; i++) {
					sum += a[x][i] * b[i][y];
				}
				c[x][y] = sum;
			}
		}

		for (int i = 0; i < n; i++) {
			for (int s = 0; s < l; s++) {
				if (s == 0)
					System.out.print(c[i][s]);
				else
					System.out.print(" " + c[i][s]);
			}
			System.out.println();
		}
	}
} Main
import java.util.Scanner;

public class Main {

	public static void main(String[] args) {
		// 入力導入部
		Scanner sc = new Scanner(System.in);

		int n = sc.nextInt();
		int m = sc.nextInt();
		int l = sc.nextInt();

		// /////////////////////////////////////////////////////////////////
		// 計算部 x=n+n-i+n-l
		int[][] a, b;
		a = new int[n][m];
		b = new int[m][l];
		long[][] c = new long[n][l];

		for (int s = 0; s < n; s++) {
			for (int t = 0; t < m; t++) {
				a[s][t] = sc.nextInt();
			}
		}

		for (int s = 0; s < m; s++) {
			for (int t = 0; t < l; t++) {
				b[s][t] = sc.nextInt();
			}
		}
		sc.close();
		// ////配列Cを作成する
		long sum;
		for (int x = 0; x < n; x++) {
			for (int y = 0; y < l; y++) {
				sum = 0;
				for (int i = 0; i < m; i++) {
					sum += a[x][i] * b[i][y];
				}
				c[x][y] = sum;
			}
		}

		for (int i = 0; i < n; i++) {
			for (int s = 0; s < l; s++) {
				if (s == 0)
					System.out.print(c[i][s]);
				else
					System.out.print(" " + c[i][s]);
			}
			System.out.println();
		}
	}
}