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

public class Main {

	public static void main(String[] args) {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

		try {

			String str = br.readLine();
			String[] strArr = str.split(" ");

			int n = Integer.parseInt(strArr[0]);
			int m = Integer.parseInt(strArr[1]);
			int l = Integer.parseInt(strArr[2]);

			int[][] nm = new int[n][m];
			int[][] ml = new int[m][l];

			// create array (n * m)
			for(int i=0;i<n;i++){
				str = br.readLine();
				strArr = str.split(" ");
				for(int j=0;j<m;j++){
					// ???????????????????????????
					nm[i][j] = Integer.parseInt(strArr[j]);
				}
			}

			// create array (m * l)
			for(int i=0;i<m;i++){
				str = br.readLine();
				strArr = str.split(" ");
				for(int j=0;j<l;j++){
					// ???????????????????????????
					ml[i][j] = Integer.parseInt(strArr[j]);
				}
			}

			// calculate
			StringBuilder sb = new StringBuilder();
			for(int i=0;i<n;i++){
				for(int j=0;j<l;j++){
					long c = 0;
					for(int k=0;k<m;k++){
						c += nm[i][k] * ml[k][j];
					}
					sb.append(c);
					sb.append(j<(l-1)?' ':'\n');
				}
			}

			System.out.print(sb.toString());

		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			try {
				if (br != null) {
					br.close();
				}
			} catch (IOException ioe) {
			}

		}
	}
} 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) {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

		try {

			String str = br.readLine();
			String[] strArr = str.split(" ");

			int n = Integer.parseInt(strArr[0]);
			int m = Integer.parseInt(strArr[1]);
			int l = Integer.parseInt(strArr[2]);

			int[][] nm = new int[n][m];
			int[][] ml = new int[m][l];

			// create array (n * m)
			for(int i=0;i<n;i++){
				str = br.readLine();
				strArr = str.split(" ");
				for(int j=0;j<m;j++){
					// ???????????????????????????
					nm[i][j] = Integer.parseInt(strArr[j]);
				}
			}

			// create array (m * l)
			for(int i=0;i<m;i++){
				str = br.readLine();
				strArr = str.split(" ");
				for(int j=0;j<l;j++){
					// ???????????????????????????
					ml[i][j] = Integer.parseInt(strArr[j]);
				}
			}

			// calculate
			StringBuilder sb = new StringBuilder();
			for(int i=0;i<n;i++){
				for(int j=0;j<l;j++){
					long c = 0;
					for(int k=0;k<m;k++){
						c += nm[i][k] * ml[k][j];
					}
					sb.append(c);
					sb.append(j<(l-1)?' ':'\n');
				}
			}

			System.out.print(sb.toString());

		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			try {
				if (br != null) {
					br.close();
				}
			} catch (IOException ioe) {
			}

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

		try {

			String str = br.readLine();
			String[] strArr = str.split(" ");

			int n = Integer.parseInt(strArr[0]);
			int m = Integer.parseInt(strArr[1]);
			int l = Integer.parseInt(strArr[2]);

			int[][] nm = new int[n][m];
			int[][] ml = new int[m][l];

			// create array (n * m)
			for(int i=0;i<n;i++){
				str = br.readLine();
				strArr = str.split(" ");
				for(int j=0;j<m;j++){
					// ???????????????????????????
					nm[i][j] = Integer.parseInt(strArr[j]);
				}
			}

			// create array (m * l)
			for(int i=0;i<m;i++){
				str = br.readLine();
				strArr = str.split(" ");
				for(int j=0;j<l;j++){
					// ???????????????????????????
					ml[i][j] = Integer.parseInt(strArr[j]);
				}
			}

			// calculate
			StringBuilder sb = new StringBuilder();
			for(int i=0;i<n;i++){
				for(int j=0;j<l;j++){
					long c = 0;
					for(int k=0;k<m;k++){
						c += nm[i][k] * ml[k][j];
					}
					sb.append(c);
					sb.append(j<(l-1)?' ':'\n');
				}
			}

			System.out.print(sb.toString());

		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			try {
				if (br != null) {
					br.close();
				}
			} catch (IOException ioe) {
			}

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

		try {

			String str = br.readLine();
			String[] strArr = str.split(" ");

			int n = Integer.parseInt(strArr[0]);
			int m = Integer.parseInt(strArr[1]);
			int l = Integer.parseInt(strArr[2]);

			int[][] nm = new int[n][m];
			int[][] ml = new int[m][l];

			// create array (n * m)
			for(int i=0;i<n;i++){
				str = br.readLine();
				strArr = str.split(" ");
				for(int j=0;j<m;j++){
					// ???????????????????????????
					nm[i][j] = Integer.parseInt(strArr[j]);
				}
			}

			// create array (m * l)
			for(int i=0;i<m;i++){
				str = br.readLine();
				strArr = str.split(" ");
				for(int j=0;j<l;j++){
					// ???????????????????????????
					ml[i][j] = Integer.parseInt(strArr[j]);
				}
			}

			// calculate
			StringBuilder sb = new StringBuilder();
			for(int i=0;i<n;i++){
				for(int j=0;j<l;j++){
					long c = 0;
					for(int k=0;k<m;k++){
						c += nm[i][k] * ml[k][j];
					}
					sb.append(c);
					sb.append(j<(l-1)?' ':'\n');
				}
			}

			System.out.print(sb.toString());

		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			try {
				if (br != null) {
					br.close();
				}
			} catch (IOException ioe) {
			}

		}
	} BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); br new BufferedReader(new InputStreamReader(System.in)) try {

			String str = br.readLine();
			String[] strArr = str.split(" ");

			int n = Integer.parseInt(strArr[0]);
			int m = Integer.parseInt(strArr[1]);
			int l = Integer.parseInt(strArr[2]);

			int[][] nm = new int[n][m];
			int[][] ml = new int[m][l];

			// create array (n * m)
			for(int i=0;i<n;i++){
				str = br.readLine();
				strArr = str.split(" ");
				for(int j=0;j<m;j++){
					// ???????????????????????????
					nm[i][j] = Integer.parseInt(strArr[j]);
				}
			}

			// create array (m * l)
			for(int i=0;i<m;i++){
				str = br.readLine();
				strArr = str.split(" ");
				for(int j=0;j<l;j++){
					// ???????????????????????????
					ml[i][j] = Integer.parseInt(strArr[j]);
				}
			}

			// calculate
			StringBuilder sb = new StringBuilder();
			for(int i=0;i<n;i++){
				for(int j=0;j<l;j++){
					long c = 0;
					for(int k=0;k<m;k++){
						c += nm[i][k] * ml[k][j];
					}
					sb.append(c);
					sb.append(j<(l-1)?' ':'\n');
				}
			}

			System.out.print(sb.toString());

		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			try {
				if (br != null) {
					br.close();
				}
			} catch (IOException ioe) {
			}

		} catch (IOException e) {
			e.printStackTrace();
		} IOException e {
			e.printStackTrace();
		} e.printStackTrace() e.printStackTrace e {
			try {
				if (br != null) {
					br.close();
				}
			} catch (IOException ioe) {
			}

		} try {
				if (br != null) {
					br.close();
				}
			} catch (IOException ioe) {
			} catch (IOException ioe) {
			} IOException ioe {
			} {
				if (br != null) {
					br.close();
				}
			} if (br != null) {
					br.close();
				} br != null br null {
					br.close();
				} br.close() br.close br {

			String str = br.readLine();
			String[] strArr = str.split(" ");

			int n = Integer.parseInt(strArr[0]);
			int m = Integer.parseInt(strArr[1]);
			int l = Integer.parseInt(strArr[2]);

			int[][] nm = new int[n][m];
			int[][] ml = new int[m][l];

			// create array (n * m)
			for(int i=0;i<n;i++){
				str = br.readLine();
				strArr = str.split(" ");
				for(int j=0;j<m;j++){
					// ???????????????????????????
					nm[i][j] = Integer.parseInt(strArr[j]);
				}
			}

			// create array (m * l)
			for(int i=0;i<m;i++){
				str = br.readLine();
				strArr = str.split(" ");
				for(int j=0;j<l;j++){
					// ???????????????????????????
					ml[i][j] = Integer.parseInt(strArr[j]);
				}
			}

			// calculate
			StringBuilder sb = new StringBuilder();
			for(int i=0;i<n;i++){
				for(int j=0;j<l;j++){
					long c = 0;
					for(int k=0;k<m;k++){
						c += nm[i][k] * ml[k][j];
					}
					sb.append(c);
					sb.append(j<(l-1)?' ':'\n');
				}
			}

			System.out.print(sb.toString());

		} String str = br.readLine(); str br.readLine() br.readLine br String[] strArr = str.split(" "); strArr str.split(" ") str.split str " " int n = Integer.parseInt(strArr[0]); n Integer.parseInt(strArr[0]) Integer.parseInt Integer strArr[0] strArr 0 int m = Integer.parseInt(strArr[1]); m Integer.parseInt(strArr[1]) Integer.parseInt Integer strArr[1] strArr 1 int l = Integer.parseInt(strArr[2]); l Integer.parseInt(strArr[2]) Integer.parseInt Integer strArr[2] strArr 2 int[][] nm = new int[n][m]; nm new int[n][m] n m int[][] ml = new int[m][l]; ml new int[m][l] m l for(int i=0;i<n;i++){
				str = br.readLine();
				strArr = str.split(" ");
				for(int j=0;j<m;j++){
					// ???????????????????????????
					nm[i][j] = Integer.parseInt(strArr[j]);
				}
			} int i=0; int i=0; i 0 i<n i n i++ i++ i {
				str = br.readLine();
				strArr = str.split(" ");
				for(int j=0;j<m;j++){
					// ???????????????????????????
					nm[i][j] = Integer.parseInt(strArr[j]);
				}
			} {
				str = br.readLine();
				strArr = str.split(" ");
				for(int j=0;j<m;j++){
					// ???????????????????????????
					nm[i][j] = Integer.parseInt(strArr[j]);
				}
			} str = br.readLine() str br.readLine() br.readLine br strArr = str.split(" ") strArr str.split(" ") str.split str " " for(int j=0;j<m;j++){
					// ???????????????????????????
					nm[i][j] = Integer.parseInt(strArr[j]);
				} int j=0; int j=0; j 0 j<m j m j++ j++ j {
					// ???????????????????????????
					nm[i][j] = Integer.parseInt(strArr[j]);
				} {
					// ???????????????????????????
					nm[i][j] = Integer.parseInt(strArr[j]);
				} nm[i][j] = Integer.parseInt(strArr[j]) nm[i][j] nm[i] nm i j Integer.parseInt(strArr[j]) Integer.parseInt Integer strArr[j] strArr j for(int i=0;i<m;i++){
				str = br.readLine();
				strArr = str.split(" ");
				for(int j=0;j<l;j++){
					// ???????????????????????????
					ml[i][j] = Integer.parseInt(strArr[j]);
				}
			} int i=0; int i=0; i 0 i<m i m i++ i++ i {
				str = br.readLine();
				strArr = str.split(" ");
				for(int j=0;j<l;j++){
					// ???????????????????????????
					ml[i][j] = Integer.parseInt(strArr[j]);
				}
			} {
				str = br.readLine();
				strArr = str.split(" ");
				for(int j=0;j<l;j++){
					// ???????????????????????????
					ml[i][j] = Integer.parseInt(strArr[j]);
				}
			} str = br.readLine() str br.readLine() br.readLine br strArr = str.split(" ") strArr str.split(" ") str.split str " " for(int j=0;j<l;j++){
					// ???????????????????????????
					ml[i][j] = Integer.parseInt(strArr[j]);
				} int j=0; int j=0; j 0 j<l j l j++ j++ j {
					// ???????????????????????????
					ml[i][j] = Integer.parseInt(strArr[j]);
				} {
					// ???????????????????????????
					ml[i][j] = Integer.parseInt(strArr[j]);
				} ml[i][j] = Integer.parseInt(strArr[j]) ml[i][j] ml[i] ml i j Integer.parseInt(strArr[j]) Integer.parseInt Integer strArr[j] strArr j StringBuilder sb = new StringBuilder(); sb new StringBuilder() for(int i=0;i<n;i++){
				for(int j=0;j<l;j++){
					long c = 0;
					for(int k=0;k<m;k++){
						c += nm[i][k] * ml[k][j];
					}
					sb.append(c);
					sb.append(j<(l-1)?' ':'\n');
				}
			} int i=0; int i=0; i 0 i<n i n i++ i++ i {
				for(int j=0;j<l;j++){
					long c = 0;
					for(int k=0;k<m;k++){
						c += nm[i][k] * ml[k][j];
					}
					sb.append(c);
					sb.append(j<(l-1)?' ':'\n');
				}
			} {
				for(int j=0;j<l;j++){
					long c = 0;
					for(int k=0;k<m;k++){
						c += nm[i][k] * ml[k][j];
					}
					sb.append(c);
					sb.append(j<(l-1)?' ':'\n');
				}
			} for(int j=0;j<l;j++){
					long c = 0;
					for(int k=0;k<m;k++){
						c += nm[i][k] * ml[k][j];
					}
					sb.append(c);
					sb.append(j<(l-1)?' ':'\n');
				} int j=0; int j=0; j 0 j<l j l j++ j++ j {
					long c = 0;
					for(int k=0;k<m;k++){
						c += nm[i][k] * ml[k][j];
					}
					sb.append(c);
					sb.append(j<(l-1)?' ':'\n');
				} {
					long c = 0;
					for(int k=0;k<m;k++){
						c += nm[i][k] * ml[k][j];
					}
					sb.append(c);
					sb.append(j<(l-1)?' ':'\n');
				} long c = 0; c 0 for(int k=0;k<m;k++){
						c += nm[i][k] * ml[k][j];
					} int k=0; int k=0; k 0 k<m k m k++ k++ k {
						c += nm[i][k] * ml[k][j];
					} {
						c += nm[i][k] * ml[k][j];
					} c += nm[i][k] * ml[k][j] c nm[i][k] * ml[k][j] nm[i][k] nm[i] nm i k ml[k][j] ml[k] ml k j sb.append(c) sb.append sb c sb.append(j<(l-1)?' ':'\n') sb.append sb j<(l-1)?' ':'\n' j<(l-1) j (l-1) l 1 ' ' '\n' System.out.print(sb.toString()) System.out.print System.out System System.out sb.toString() sb.toString sb String[] args args public class Main {

	public static void main(String[] args) {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

		try {

			String str = br.readLine();
			String[] strArr = str.split(" ");

			int n = Integer.parseInt(strArr[0]);
			int m = Integer.parseInt(strArr[1]);
			int l = Integer.parseInt(strArr[2]);

			int[][] nm = new int[n][m];
			int[][] ml = new int[m][l];

			// create array (n * m)
			for(int i=0;i<n;i++){
				str = br.readLine();
				strArr = str.split(" ");
				for(int j=0;j<m;j++){
					// ???????????????????????????
					nm[i][j] = Integer.parseInt(strArr[j]);
				}
			}

			// create array (m * l)
			for(int i=0;i<m;i++){
				str = br.readLine();
				strArr = str.split(" ");
				for(int j=0;j<l;j++){
					// ???????????????????????????
					ml[i][j] = Integer.parseInt(strArr[j]);
				}
			}

			// calculate
			StringBuilder sb = new StringBuilder();
			for(int i=0;i<n;i++){
				for(int j=0;j<l;j++){
					long c = 0;
					for(int k=0;k<m;k++){
						c += nm[i][k] * ml[k][j];
					}
					sb.append(c);
					sb.append(j<(l-1)?' ':'\n');
				}
			}

			System.out.print(sb.toString());

		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			try {
				if (br != null) {
					br.close();
				}
			} catch (IOException ioe) {
			}

		}
	}
} public class Main {

	public static void main(String[] args) {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

		try {

			String str = br.readLine();
			String[] strArr = str.split(" ");

			int n = Integer.parseInt(strArr[0]);
			int m = Integer.parseInt(strArr[1]);
			int l = Integer.parseInt(strArr[2]);

			int[][] nm = new int[n][m];
			int[][] ml = new int[m][l];

			// create array (n * m)
			for(int i=0;i<n;i++){
				str = br.readLine();
				strArr = str.split(" ");
				for(int j=0;j<m;j++){
					// ???????????????????????????
					nm[i][j] = Integer.parseInt(strArr[j]);
				}
			}

			// create array (m * l)
			for(int i=0;i<m;i++){
				str = br.readLine();
				strArr = str.split(" ");
				for(int j=0;j<l;j++){
					// ???????????????????????????
					ml[i][j] = Integer.parseInt(strArr[j]);
				}
			}

			// calculate
			StringBuilder sb = new StringBuilder();
			for(int i=0;i<n;i++){
				for(int j=0;j<l;j++){
					long c = 0;
					for(int k=0;k<m;k++){
						c += nm[i][k] * ml[k][j];
					}
					sb.append(c);
					sb.append(j<(l-1)?' ':'\n');
				}
			}

			System.out.print(sb.toString());

		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			try {
				if (br != null) {
					br.close();
				}
			} catch (IOException ioe) {
			}

		}
	}
} Main

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

public class Main {

	public static void main(String[] args) {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

		try {

			String str = br.readLine();
			String[] strArr = str.split(" ");

			int n = Integer.parseInt(strArr[0]);
			int m = Integer.parseInt(strArr[1]);
			int l = Integer.parseInt(strArr[2]);

			int[][] nm = new int[n][m];
			int[][] ml = new int[m][l];

			// create array (n * m)
			for(int i=0;i<n;i++){
				str = br.readLine();
				strArr = str.split(" ");
				for(int j=0;j<m;j++){
					// ???????????????????????????
					nm[i][j] = Integer.parseInt(strArr[j]);
				}
			}

			// create array (m * l)
			for(int i=0;i<m;i++){
				str = br.readLine();
				strArr = str.split(" ");
				for(int j=0;j<l;j++){
					// ???????????????????????????
					ml[i][j] = Integer.parseInt(strArr[j]);
				}
			}

			// calculate
			StringBuilder sb = new StringBuilder();
			for(int i=0;i<n;i++){
				for(int j=0;j<l;j++){
					long c = 0;
					for(int k=0;k<m;k++){
						c += nm[i][k] * ml[k][j];
					}
					sb.append(c);
					sb.append(j<(l-1)?' ':'\n');
				}
			}

			System.out.print(sb.toString());

		} catch (IOException e) {
			e.printStackTrace();
		} finally {
			try {
				if (br != null) {
					br.close();
				}
			} catch (IOException ioe) {
			}

		}
	}
}