import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.lang.StringBuilder;
public class Main {
	public static void main(String[] args) throws Exception{
		BufferedReader sc = new BufferedReader(new InputStreamReader(System.in));
		StringBuilder sb = new StringBuilder();
		String[] st = sc.readLine().split(" ");
		int n = Integer.parseInt(st[0]);
		int m = Integer.parseInt(st[1]);
		int l = Integer.parseInt(st[2]);
		long[][] a = new long[n][m];
		long[][] b = new long[m][l];
		long t = 0;
		for(int i = 0;i < n;i++){
			st = sc.readLine().split(" ");
			for(int k = 0;k < m;k++){
				a[i][k] = Long.parseLong(st[k]);
			}
		}
		for(int i = 0;i < m;i++){
			st = sc.readLine().split(" ");
			for(int k = 0;k < l;k++){
				b[i][k] = Long.parseLong(st[k]);
			}
		}
		for(int i = 0;i < n;i++){
			for(int k = 0;k < l;k++){
				for(int j = 0;j < m;j++){
					t += a[i][j]*b[j][k];
				}
				sb.append(t);
				t = 0;
				if(k!=l-1)
					sb.append(" ");
			}
			sb.append("\n");
		}
		System.out.print(sb);
	}
} import java.io.BufferedReader; BufferedReader java.io import java.io.InputStreamReader; InputStreamReader java.io import java.lang.StringBuilder; StringBuilder java.lang public class Main {
	public static void main(String[] args) throws Exception{
		BufferedReader sc = new BufferedReader(new InputStreamReader(System.in));
		StringBuilder sb = new StringBuilder();
		String[] st = sc.readLine().split(" ");
		int n = Integer.parseInt(st[0]);
		int m = Integer.parseInt(st[1]);
		int l = Integer.parseInt(st[2]);
		long[][] a = new long[n][m];
		long[][] b = new long[m][l];
		long t = 0;
		for(int i = 0;i < n;i++){
			st = sc.readLine().split(" ");
			for(int k = 0;k < m;k++){
				a[i][k] = Long.parseLong(st[k]);
			}
		}
		for(int i = 0;i < m;i++){
			st = sc.readLine().split(" ");
			for(int k = 0;k < l;k++){
				b[i][k] = Long.parseLong(st[k]);
			}
		}
		for(int i = 0;i < n;i++){
			for(int k = 0;k < l;k++){
				for(int j = 0;j < m;j++){
					t += a[i][j]*b[j][k];
				}
				sb.append(t);
				t = 0;
				if(k!=l-1)
					sb.append(" ");
			}
			sb.append("\n");
		}
		System.out.print(sb);
	}
} Main public static void main(String[] args) throws Exception{
		BufferedReader sc = new BufferedReader(new InputStreamReader(System.in));
		StringBuilder sb = new StringBuilder();
		String[] st = sc.readLine().split(" ");
		int n = Integer.parseInt(st[0]);
		int m = Integer.parseInt(st[1]);
		int l = Integer.parseInt(st[2]);
		long[][] a = new long[n][m];
		long[][] b = new long[m][l];
		long t = 0;
		for(int i = 0;i < n;i++){
			st = sc.readLine().split(" ");
			for(int k = 0;k < m;k++){
				a[i][k] = Long.parseLong(st[k]);
			}
		}
		for(int i = 0;i < m;i++){
			st = sc.readLine().split(" ");
			for(int k = 0;k < l;k++){
				b[i][k] = Long.parseLong(st[k]);
			}
		}
		for(int i = 0;i < n;i++){
			for(int k = 0;k < l;k++){
				for(int j = 0;j < m;j++){
					t += a[i][j]*b[j][k];
				}
				sb.append(t);
				t = 0;
				if(k!=l-1)
					sb.append(" ");
			}
			sb.append("\n");
		}
		System.out.print(sb);
	} main {
		BufferedReader sc = new BufferedReader(new InputStreamReader(System.in));
		StringBuilder sb = new StringBuilder();
		String[] st = sc.readLine().split(" ");
		int n = Integer.parseInt(st[0]);
		int m = Integer.parseInt(st[1]);
		int l = Integer.parseInt(st[2]);
		long[][] a = new long[n][m];
		long[][] b = new long[m][l];
		long t = 0;
		for(int i = 0;i < n;i++){
			st = sc.readLine().split(" ");
			for(int k = 0;k < m;k++){
				a[i][k] = Long.parseLong(st[k]);
			}
		}
		for(int i = 0;i < m;i++){
			st = sc.readLine().split(" ");
			for(int k = 0;k < l;k++){
				b[i][k] = Long.parseLong(st[k]);
			}
		}
		for(int i = 0;i < n;i++){
			for(int k = 0;k < l;k++){
				for(int j = 0;j < m;j++){
					t += a[i][j]*b[j][k];
				}
				sb.append(t);
				t = 0;
				if(k!=l-1)
					sb.append(" ");
			}
			sb.append("\n");
		}
		System.out.print(sb);
	} BufferedReader sc = new BufferedReader(new InputStreamReader(System.in)); sc new BufferedReader(new InputStreamReader(System.in)) StringBuilder sb = new StringBuilder(); sb new StringBuilder() String[] st = sc.readLine().split(" "); st sc.readLine().split(" ") sc.readLine().split sc.readLine() sc.readLine sc " " int n = Integer.parseInt(st[0]); n Integer.parseInt(st[0]) Integer.parseInt Integer st[0] st 0 int m = Integer.parseInt(st[1]); m Integer.parseInt(st[1]) Integer.parseInt Integer st[1] st 1 int l = Integer.parseInt(st[2]); l Integer.parseInt(st[2]) Integer.parseInt Integer st[2] st 2 long[][] a = new long[n][m]; a new long[n][m] n m long[][] b = new long[m][l]; b new long[m][l] m l long t = 0; t 0 for(int i = 0;i < n;i++){
			st = sc.readLine().split(" ");
			for(int k = 0;k < m;k++){
				a[i][k] = Long.parseLong(st[k]);
			}
		} int i = 0; int i = 0; i 0 i < n i n i++ i++ i {
			st = sc.readLine().split(" ");
			for(int k = 0;k < m;k++){
				a[i][k] = Long.parseLong(st[k]);
			}
		} {
			st = sc.readLine().split(" ");
			for(int k = 0;k < m;k++){
				a[i][k] = Long.parseLong(st[k]);
			}
		} st = sc.readLine().split(" ") st sc.readLine().split(" ") sc.readLine().split sc.readLine() sc.readLine sc " " for(int k = 0;k < m;k++){
				a[i][k] = Long.parseLong(st[k]);
			} int k = 0; int k = 0; k 0 k < m k m k++ k++ k {
				a[i][k] = Long.parseLong(st[k]);
			} {
				a[i][k] = Long.parseLong(st[k]);
			} a[i][k] = Long.parseLong(st[k]) a[i][k] a[i] a i k Long.parseLong(st[k]) Long.parseLong Long st[k] st k for(int i = 0;i < m;i++){
			st = sc.readLine().split(" ");
			for(int k = 0;k < l;k++){
				b[i][k] = Long.parseLong(st[k]);
			}
		} int i = 0; int i = 0; i 0 i < m i m i++ i++ i {
			st = sc.readLine().split(" ");
			for(int k = 0;k < l;k++){
				b[i][k] = Long.parseLong(st[k]);
			}
		} {
			st = sc.readLine().split(" ");
			for(int k = 0;k < l;k++){
				b[i][k] = Long.parseLong(st[k]);
			}
		} st = sc.readLine().split(" ") st sc.readLine().split(" ") sc.readLine().split sc.readLine() sc.readLine sc " " for(int k = 0;k < l;k++){
				b[i][k] = Long.parseLong(st[k]);
			} int k = 0; int k = 0; k 0 k < l k l k++ k++ k {
				b[i][k] = Long.parseLong(st[k]);
			} {
				b[i][k] = Long.parseLong(st[k]);
			} b[i][k] = Long.parseLong(st[k]) b[i][k] b[i] b i k Long.parseLong(st[k]) Long.parseLong Long st[k] st k for(int i = 0;i < n;i++){
			for(int k = 0;k < l;k++){
				for(int j = 0;j < m;j++){
					t += a[i][j]*b[j][k];
				}
				sb.append(t);
				t = 0;
				if(k!=l-1)
					sb.append(" ");
			}
			sb.append("\n");
		} int i = 0; int i = 0; i 0 i < n i n i++ i++ i {
			for(int k = 0;k < l;k++){
				for(int j = 0;j < m;j++){
					t += a[i][j]*b[j][k];
				}
				sb.append(t);
				t = 0;
				if(k!=l-1)
					sb.append(" ");
			}
			sb.append("\n");
		} {
			for(int k = 0;k < l;k++){
				for(int j = 0;j < m;j++){
					t += a[i][j]*b[j][k];
				}
				sb.append(t);
				t = 0;
				if(k!=l-1)
					sb.append(" ");
			}
			sb.append("\n");
		} for(int k = 0;k < l;k++){
				for(int j = 0;j < m;j++){
					t += a[i][j]*b[j][k];
				}
				sb.append(t);
				t = 0;
				if(k!=l-1)
					sb.append(" ");
			} int k = 0; int k = 0; k 0 k < l k l k++ k++ k {
				for(int j = 0;j < m;j++){
					t += a[i][j]*b[j][k];
				}
				sb.append(t);
				t = 0;
				if(k!=l-1)
					sb.append(" ");
			} {
				for(int j = 0;j < m;j++){
					t += a[i][j]*b[j][k];
				}
				sb.append(t);
				t = 0;
				if(k!=l-1)
					sb.append(" ");
			} for(int j = 0;j < m;j++){
					t += a[i][j]*b[j][k];
				} int j = 0; int j = 0; j 0 j < m j m j++ j++ j {
					t += a[i][j]*b[j][k];
				} {
					t += a[i][j]*b[j][k];
				} t += a[i][j]*b[j][k] t a[i][j]*b[j][k] a[i][j] a[i] a i j b[j][k] b[j] b j k sb.append(t) sb.append sb t t = 0 t 0 if(k!=l-1)
					sb.append(" "); k!=l-1 k l-1 l 1 sb.append(" ") sb.append sb " " sb.append("\n") sb.append sb "\n" System.out.print(sb) System.out.print System.out System System.out sb String[] args args public class Main {
	public static void main(String[] args) throws Exception{
		BufferedReader sc = new BufferedReader(new InputStreamReader(System.in));
		StringBuilder sb = new StringBuilder();
		String[] st = sc.readLine().split(" ");
		int n = Integer.parseInt(st[0]);
		int m = Integer.parseInt(st[1]);
		int l = Integer.parseInt(st[2]);
		long[][] a = new long[n][m];
		long[][] b = new long[m][l];
		long t = 0;
		for(int i = 0;i < n;i++){
			st = sc.readLine().split(" ");
			for(int k = 0;k < m;k++){
				a[i][k] = Long.parseLong(st[k]);
			}
		}
		for(int i = 0;i < m;i++){
			st = sc.readLine().split(" ");
			for(int k = 0;k < l;k++){
				b[i][k] = Long.parseLong(st[k]);
			}
		}
		for(int i = 0;i < n;i++){
			for(int k = 0;k < l;k++){
				for(int j = 0;j < m;j++){
					t += a[i][j]*b[j][k];
				}
				sb.append(t);
				t = 0;
				if(k!=l-1)
					sb.append(" ");
			}
			sb.append("\n");
		}
		System.out.print(sb);
	}
} public class Main {
	public static void main(String[] args) throws Exception{
		BufferedReader sc = new BufferedReader(new InputStreamReader(System.in));
		StringBuilder sb = new StringBuilder();
		String[] st = sc.readLine().split(" ");
		int n = Integer.parseInt(st[0]);
		int m = Integer.parseInt(st[1]);
		int l = Integer.parseInt(st[2]);
		long[][] a = new long[n][m];
		long[][] b = new long[m][l];
		long t = 0;
		for(int i = 0;i < n;i++){
			st = sc.readLine().split(" ");
			for(int k = 0;k < m;k++){
				a[i][k] = Long.parseLong(st[k]);
			}
		}
		for(int i = 0;i < m;i++){
			st = sc.readLine().split(" ");
			for(int k = 0;k < l;k++){
				b[i][k] = Long.parseLong(st[k]);
			}
		}
		for(int i = 0;i < n;i++){
			for(int k = 0;k < l;k++){
				for(int j = 0;j < m;j++){
					t += a[i][j]*b[j][k];
				}
				sb.append(t);
				t = 0;
				if(k!=l-1)
					sb.append(" ");
			}
			sb.append("\n");
		}
		System.out.print(sb);
	}
} Main
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.lang.StringBuilder;
public class Main {
	public static void main(String[] args) throws Exception{
		BufferedReader sc = new BufferedReader(new InputStreamReader(System.in));
		StringBuilder sb = new StringBuilder();
		String[] st = sc.readLine().split(" ");
		int n = Integer.parseInt(st[0]);
		int m = Integer.parseInt(st[1]);
		int l = Integer.parseInt(st[2]);
		long[][] a = new long[n][m];
		long[][] b = new long[m][l];
		long t = 0;
		for(int i = 0;i < n;i++){
			st = sc.readLine().split(" ");
			for(int k = 0;k < m;k++){
				a[i][k] = Long.parseLong(st[k]);
			}
		}
		for(int i = 0;i < m;i++){
			st = sc.readLine().split(" ");
			for(int k = 0;k < l;k++){
				b[i][k] = Long.parseLong(st[k]);
			}
		}
		for(int i = 0;i < n;i++){
			for(int k = 0;k < l;k++){
				for(int j = 0;j < m;j++){
					t += a[i][j]*b[j][k];
				}
				sb.append(t);
				t = 0;
				if(k!=l-1)
					sb.append(" ");
			}
			sb.append("\n");
		}
		System.out.print(sb);
	}
}