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

public class Main {
	
	private static int n, m, l;
	private static long[][] a, b;

	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		String[] strArr = br.readLine().split(" ");
		n = Integer.parseInt(strArr[0]);
		m = Integer.parseInt(strArr[1]);
		l = Integer.parseInt(strArr[2]);
		
		a = new long[n][m];
		b = new long[m][l];
		
		for(int i = 0;i < n;i++){
			a[i] = toLongArray(br.readLine().split(" "));
		}
		
		for(int i = 0;i < m;i++){
			b[i] = toLongArray(br.readLine().split(" "));
		}
		
		
		for(int i = 0;i < n;i++){
			for(int j = 0;j < l;j++){
				System.out.print(get(i, j));
				if(j == l - 1){
					break;
				}
				System.out.print(" ");
			}
			System.out.println();
		}
	}
	
	private static long get(int r, int c){
		long sum = 0;
		for(int i = 0;i < m;i++){
			sum += a[r][i] * b[i][c];
		}
		return sum;
	}
	
	private static long[] toLongArray(String[] strArray){
		long[] arr = new long[strArray.length];
		for(int i = 0;i < arr.length;i++){
			arr[i] = Long.parseLong(strArray[i]);
		}
		return arr;
	}
} import java.io.BufferedReader; BufferedReader java.io import java.io.IOException; IOException java.io import java.io.InputStreamReader; InputStreamReader java.io public class Main {
	
	private static int n, m, l;
	private static long[][] a, b;

	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		String[] strArr = br.readLine().split(" ");
		n = Integer.parseInt(strArr[0]);
		m = Integer.parseInt(strArr[1]);
		l = Integer.parseInt(strArr[2]);
		
		a = new long[n][m];
		b = new long[m][l];
		
		for(int i = 0;i < n;i++){
			a[i] = toLongArray(br.readLine().split(" "));
		}
		
		for(int i = 0;i < m;i++){
			b[i] = toLongArray(br.readLine().split(" "));
		}
		
		
		for(int i = 0;i < n;i++){
			for(int j = 0;j < l;j++){
				System.out.print(get(i, j));
				if(j == l - 1){
					break;
				}
				System.out.print(" ");
			}
			System.out.println();
		}
	}
	
	private static long get(int r, int c){
		long sum = 0;
		for(int i = 0;i < m;i++){
			sum += a[r][i] * b[i][c];
		}
		return sum;
	}
	
	private static long[] toLongArray(String[] strArray){
		long[] arr = new long[strArray.length];
		for(int i = 0;i < arr.length;i++){
			arr[i] = Long.parseLong(strArray[i]);
		}
		return arr;
	}
} Main private static int n n m m l; l private static long[][] a a b; b public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		String[] strArr = br.readLine().split(" ");
		n = Integer.parseInt(strArr[0]);
		m = Integer.parseInt(strArr[1]);
		l = Integer.parseInt(strArr[2]);
		
		a = new long[n][m];
		b = new long[m][l];
		
		for(int i = 0;i < n;i++){
			a[i] = toLongArray(br.readLine().split(" "));
		}
		
		for(int i = 0;i < m;i++){
			b[i] = toLongArray(br.readLine().split(" "));
		}
		
		
		for(int i = 0;i < n;i++){
			for(int j = 0;j < l;j++){
				System.out.print(get(i, j));
				if(j == l - 1){
					break;
				}
				System.out.print(" ");
			}
			System.out.println();
		}
	} main {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		String[] strArr = br.readLine().split(" ");
		n = Integer.parseInt(strArr[0]);
		m = Integer.parseInt(strArr[1]);
		l = Integer.parseInt(strArr[2]);
		
		a = new long[n][m];
		b = new long[m][l];
		
		for(int i = 0;i < n;i++){
			a[i] = toLongArray(br.readLine().split(" "));
		}
		
		for(int i = 0;i < m;i++){
			b[i] = toLongArray(br.readLine().split(" "));
		}
		
		
		for(int i = 0;i < n;i++){
			for(int j = 0;j < l;j++){
				System.out.print(get(i, j));
				if(j == l - 1){
					break;
				}
				System.out.print(" ");
			}
			System.out.println();
		}
	} BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); br new BufferedReader(new InputStreamReader(System.in)) String[] strArr = br.readLine().split(" "); strArr br.readLine().split(" ") br.readLine().split br.readLine() br.readLine br " " n = Integer.parseInt(strArr[0]) n Integer.parseInt(strArr[0]) Integer.parseInt Integer strArr[0] strArr 0 m = Integer.parseInt(strArr[1]) m Integer.parseInt(strArr[1]) Integer.parseInt Integer strArr[1] strArr 1 l = Integer.parseInt(strArr[2]) l Integer.parseInt(strArr[2]) Integer.parseInt Integer strArr[2] strArr 2 a = new long[n][m] a new long[n][m] n m b = new long[m][l] b new long[m][l] m l for(int i = 0;i < n;i++){
			a[i] = toLongArray(br.readLine().split(" "));
		} int i = 0; int i = 0; i 0 i < n i n i++ i++ i {
			a[i] = toLongArray(br.readLine().split(" "));
		} {
			a[i] = toLongArray(br.readLine().split(" "));
		} a[i] = toLongArray(br.readLine().split(" ")) a[i] a i toLongArray(br.readLine().split(" ")) toLongArray br.readLine().split(" ") br.readLine().split br.readLine() br.readLine br " " for(int i = 0;i < m;i++){
			b[i] = toLongArray(br.readLine().split(" "));
		} int i = 0; int i = 0; i 0 i < m i m i++ i++ i {
			b[i] = toLongArray(br.readLine().split(" "));
		} {
			b[i] = toLongArray(br.readLine().split(" "));
		} b[i] = toLongArray(br.readLine().split(" ")) b[i] b i toLongArray(br.readLine().split(" ")) toLongArray br.readLine().split(" ") br.readLine().split br.readLine() br.readLine br " " for(int i = 0;i < n;i++){
			for(int j = 0;j < l;j++){
				System.out.print(get(i, j));
				if(j == l - 1){
					break;
				}
				System.out.print(" ");
			}
			System.out.println();
		} int i = 0; int i = 0; i 0 i < n i n i++ i++ i {
			for(int j = 0;j < l;j++){
				System.out.print(get(i, j));
				if(j == l - 1){
					break;
				}
				System.out.print(" ");
			}
			System.out.println();
		} {
			for(int j = 0;j < l;j++){
				System.out.print(get(i, j));
				if(j == l - 1){
					break;
				}
				System.out.print(" ");
			}
			System.out.println();
		} for(int j = 0;j < l;j++){
				System.out.print(get(i, j));
				if(j == l - 1){
					break;
				}
				System.out.print(" ");
			} int j = 0; int j = 0; j 0 j < l j l j++ j++ j {
				System.out.print(get(i, j));
				if(j == l - 1){
					break;
				}
				System.out.print(" ");
			} {
				System.out.print(get(i, j));
				if(j == l - 1){
					break;
				}
				System.out.print(" ");
			} System.out.print(get(i, j)) System.out.print System.out System System.out get(i, j) get i j if(j == l - 1){
					break;
				} j == l - 1 j l - 1 l 1 {
					break;
				} break; System.out.print(" ") System.out.print System.out System System.out " " System.out.println() System.out.println System.out System System.out String[] args args private static long get(int r, int c){
		long sum = 0;
		for(int i = 0;i < m;i++){
			sum += a[r][i] * b[i][c];
		}
		return sum;
	} get {
		long sum = 0;
		for(int i = 0;i < m;i++){
			sum += a[r][i] * b[i][c];
		}
		return sum;
	} long sum = 0; sum 0 for(int i = 0;i < m;i++){
			sum += a[r][i] * b[i][c];
		} int i = 0; int i = 0; i 0 i < m i m i++ i++ i {
			sum += a[r][i] * b[i][c];
		} {
			sum += a[r][i] * b[i][c];
		} sum += a[r][i] * b[i][c] sum a[r][i] * b[i][c] a[r][i] a[r] a r i b[i][c] b[i] b i c return sum; sum int r r int c c private static long[] toLongArray(String[] strArray){
		long[] arr = new long[strArray.length];
		for(int i = 0;i < arr.length;i++){
			arr[i] = Long.parseLong(strArray[i]);
		}
		return arr;
	} toLongArray {
		long[] arr = new long[strArray.length];
		for(int i = 0;i < arr.length;i++){
			arr[i] = Long.parseLong(strArray[i]);
		}
		return arr;
	} long[] arr = new long[strArray.length]; arr new long[strArray.length] strArray.length strArray strArray.length for(int i = 0;i < arr.length;i++){
			arr[i] = Long.parseLong(strArray[i]);
		} int i = 0; int i = 0; i 0 i < arr.length i arr.length arr arr.length i++ i++ i {
			arr[i] = Long.parseLong(strArray[i]);
		} {
			arr[i] = Long.parseLong(strArray[i]);
		} arr[i] = Long.parseLong(strArray[i]) arr[i] arr i Long.parseLong(strArray[i]) Long.parseLong Long strArray[i] strArray i return arr; arr String[] strArray strArray public class Main {
	
	private static int n, m, l;
	private static long[][] a, b;

	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		String[] strArr = br.readLine().split(" ");
		n = Integer.parseInt(strArr[0]);
		m = Integer.parseInt(strArr[1]);
		l = Integer.parseInt(strArr[2]);
		
		a = new long[n][m];
		b = new long[m][l];
		
		for(int i = 0;i < n;i++){
			a[i] = toLongArray(br.readLine().split(" "));
		}
		
		for(int i = 0;i < m;i++){
			b[i] = toLongArray(br.readLine().split(" "));
		}
		
		
		for(int i = 0;i < n;i++){
			for(int j = 0;j < l;j++){
				System.out.print(get(i, j));
				if(j == l - 1){
					break;
				}
				System.out.print(" ");
			}
			System.out.println();
		}
	}
	
	private static long get(int r, int c){
		long sum = 0;
		for(int i = 0;i < m;i++){
			sum += a[r][i] * b[i][c];
		}
		return sum;
	}
	
	private static long[] toLongArray(String[] strArray){
		long[] arr = new long[strArray.length];
		for(int i = 0;i < arr.length;i++){
			arr[i] = Long.parseLong(strArray[i]);
		}
		return arr;
	}
} public class Main {
	
	private static int n, m, l;
	private static long[][] a, b;

	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		String[] strArr = br.readLine().split(" ");
		n = Integer.parseInt(strArr[0]);
		m = Integer.parseInt(strArr[1]);
		l = Integer.parseInt(strArr[2]);
		
		a = new long[n][m];
		b = new long[m][l];
		
		for(int i = 0;i < n;i++){
			a[i] = toLongArray(br.readLine().split(" "));
		}
		
		for(int i = 0;i < m;i++){
			b[i] = toLongArray(br.readLine().split(" "));
		}
		
		
		for(int i = 0;i < n;i++){
			for(int j = 0;j < l;j++){
				System.out.print(get(i, j));
				if(j == l - 1){
					break;
				}
				System.out.print(" ");
			}
			System.out.println();
		}
	}
	
	private static long get(int r, int c){
		long sum = 0;
		for(int i = 0;i < m;i++){
			sum += a[r][i] * b[i][c];
		}
		return sum;
	}
	
	private static long[] toLongArray(String[] strArray){
		long[] arr = new long[strArray.length];
		for(int i = 0;i < arr.length;i++){
			arr[i] = Long.parseLong(strArray[i]);
		}
		return arr;
	}
} Main
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStreamReader;

public class Main {
	
	private static int n, m, l;
	private static long[][] a, b;

	public static void main(String[] args) throws IOException {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
		String[] strArr = br.readLine().split(" ");
		n = Integer.parseInt(strArr[0]);
		m = Integer.parseInt(strArr[1]);
		l = Integer.parseInt(strArr[2]);
		
		a = new long[n][m];
		b = new long[m][l];
		
		for(int i = 0;i < n;i++){
			a[i] = toLongArray(br.readLine().split(" "));
		}
		
		for(int i = 0;i < m;i++){
			b[i] = toLongArray(br.readLine().split(" "));
		}
		
		
		for(int i = 0;i < n;i++){
			for(int j = 0;j < l;j++){
				System.out.print(get(i, j));
				if(j == l - 1){
					break;
				}
				System.out.print(" ");
			}
			System.out.println();
		}
	}
	
	private static long get(int r, int c){
		long sum = 0;
		for(int i = 0;i < m;i++){
			sum += a[r][i] * b[i][c];
		}
		return sum;
	}
	
	private static long[] toLongArray(String[] strArray){
		long[] arr = new long[strArray.length];
		for(int i = 0;i < arr.length;i++){
			arr[i] = Long.parseLong(strArray[i]);
		}
		return arr;
	}
}