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();
		int vecnm[][] = new int[n][m];
		int vecml[][] = new int[m][l];
		int i,j,k;
		long veca[][] = new long[n][l];
		
		for(i=0;i<n;i++){
			for(j=0;j<m;j++){
				vecnm[i][j] = sc.nextInt();
			}
		}
		for(i=0;i<m;i++){
			for(j=0;j<l;j++){
				vecml[i][j] = sc.nextInt();
			}
			
		}
		sc.close();
		
		for(i=0;i<n;i++){
			for(j=0;j<l;j++){
				for(k=0;k<m;k++){
					veca[i][j]+=vecnm[i][k]*vecml[k][j];
				}
			}
		}
		for(i=0;i<n;i++){
			for(j=0;j<l;j++){
				System.out.print(veca[i][j]);
				if(j!=(l-1)){
					System.out.print(" ");
				}
			}
			//if(i!=(n-1)){
				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();
		int vecnm[][] = new int[n][m];
		int vecml[][] = new int[m][l];
		int i,j,k;
		long veca[][] = new long[n][l];
		
		for(i=0;i<n;i++){
			for(j=0;j<m;j++){
				vecnm[i][j] = sc.nextInt();
			}
		}
		for(i=0;i<m;i++){
			for(j=0;j<l;j++){
				vecml[i][j] = sc.nextInt();
			}
			
		}
		sc.close();
		
		for(i=0;i<n;i++){
			for(j=0;j<l;j++){
				for(k=0;k<m;k++){
					veca[i][j]+=vecnm[i][k]*vecml[k][j];
				}
			}
		}
		for(i=0;i<n;i++){
			for(j=0;j<l;j++){
				System.out.print(veca[i][j]);
				if(j!=(l-1)){
					System.out.print(" ");
				}
			}
			//if(i!=(n-1)){
				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();
		int vecnm[][] = new int[n][m];
		int vecml[][] = new int[m][l];
		int i,j,k;
		long veca[][] = new long[n][l];
		
		for(i=0;i<n;i++){
			for(j=0;j<m;j++){
				vecnm[i][j] = sc.nextInt();
			}
		}
		for(i=0;i<m;i++){
			for(j=0;j<l;j++){
				vecml[i][j] = sc.nextInt();
			}
			
		}
		sc.close();
		
		for(i=0;i<n;i++){
			for(j=0;j<l;j++){
				for(k=0;k<m;k++){
					veca[i][j]+=vecnm[i][k]*vecml[k][j];
				}
			}
		}
		for(i=0;i<n;i++){
			for(j=0;j<l;j++){
				System.out.print(veca[i][j]);
				if(j!=(l-1)){
					System.out.print(" ");
				}
			}
			//if(i!=(n-1)){
				System.out.println();
			//}
		}
	} main {

		Scanner sc = new Scanner(System.in);
		int n = sc.nextInt();
		int m = sc.nextInt();
		int l = sc.nextInt();
		int vecnm[][] = new int[n][m];
		int vecml[][] = new int[m][l];
		int i,j,k;
		long veca[][] = new long[n][l];
		
		for(i=0;i<n;i++){
			for(j=0;j<m;j++){
				vecnm[i][j] = sc.nextInt();
			}
		}
		for(i=0;i<m;i++){
			for(j=0;j<l;j++){
				vecml[i][j] = sc.nextInt();
			}
			
		}
		sc.close();
		
		for(i=0;i<n;i++){
			for(j=0;j<l;j++){
				for(k=0;k<m;k++){
					veca[i][j]+=vecnm[i][k]*vecml[k][j];
				}
			}
		}
		for(i=0;i<n;i++){
			for(j=0;j<l;j++){
				System.out.print(veca[i][j]);
				if(j!=(l-1)){
					System.out.print(" ");
				}
			}
			//if(i!=(n-1)){
				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 vecnm[][] = new int[n][m]; vecnm new int[n][m] n m int vecml[][] = new int[m][l]; vecml new int[m][l] m l int i i j j k; k long veca[][] = new long[n][l]; veca new long[n][l] n l for(i=0;i<n;i++){
			for(j=0;j<m;j++){
				vecnm[i][j] = sc.nextInt();
			}
		} i=0; i=0 i 0 i<n i n i++ i++ i {
			for(j=0;j<m;j++){
				vecnm[i][j] = sc.nextInt();
			}
		} {
			for(j=0;j<m;j++){
				vecnm[i][j] = sc.nextInt();
			}
		} for(j=0;j<m;j++){
				vecnm[i][j] = sc.nextInt();
			} j=0; j=0 j 0 j<m j m j++ j++ j {
				vecnm[i][j] = sc.nextInt();
			} {
				vecnm[i][j] = sc.nextInt();
			} vecnm[i][j] = sc.nextInt() vecnm[i][j] vecnm[i] vecnm i j sc.nextInt() sc.nextInt sc for(i=0;i<m;i++){
			for(j=0;j<l;j++){
				vecml[i][j] = sc.nextInt();
			}
			
		} i=0; i=0 i 0 i<m i m i++ i++ i {
			for(j=0;j<l;j++){
				vecml[i][j] = sc.nextInt();
			}
			
		} {
			for(j=0;j<l;j++){
				vecml[i][j] = sc.nextInt();
			}
			
		} for(j=0;j<l;j++){
				vecml[i][j] = sc.nextInt();
			} j=0; j=0 j 0 j<l j l j++ j++ j {
				vecml[i][j] = sc.nextInt();
			} {
				vecml[i][j] = sc.nextInt();
			} vecml[i][j] = sc.nextInt() vecml[i][j] vecml[i] vecml i j sc.nextInt() sc.nextInt sc sc.close() sc.close sc for(i=0;i<n;i++){
			for(j=0;j<l;j++){
				for(k=0;k<m;k++){
					veca[i][j]+=vecnm[i][k]*vecml[k][j];
				}
			}
		} i=0; i=0 i 0 i<n i n i++ i++ i {
			for(j=0;j<l;j++){
				for(k=0;k<m;k++){
					veca[i][j]+=vecnm[i][k]*vecml[k][j];
				}
			}
		} {
			for(j=0;j<l;j++){
				for(k=0;k<m;k++){
					veca[i][j]+=vecnm[i][k]*vecml[k][j];
				}
			}
		} for(j=0;j<l;j++){
				for(k=0;k<m;k++){
					veca[i][j]+=vecnm[i][k]*vecml[k][j];
				}
			} j=0; j=0 j 0 j<l j l j++ j++ j {
				for(k=0;k<m;k++){
					veca[i][j]+=vecnm[i][k]*vecml[k][j];
				}
			} {
				for(k=0;k<m;k++){
					veca[i][j]+=vecnm[i][k]*vecml[k][j];
				}
			} for(k=0;k<m;k++){
					veca[i][j]+=vecnm[i][k]*vecml[k][j];
				} k=0; k=0 k 0 k<m k m k++ k++ k {
					veca[i][j]+=vecnm[i][k]*vecml[k][j];
				} {
					veca[i][j]+=vecnm[i][k]*vecml[k][j];
				} veca[i][j]+=vecnm[i][k]*vecml[k][j] veca[i][j] veca[i] veca i j vecnm[i][k]*vecml[k][j] vecnm[i][k] vecnm[i] vecnm i k vecml[k][j] vecml[k] vecml k j for(i=0;i<n;i++){
			for(j=0;j<l;j++){
				System.out.print(veca[i][j]);
				if(j!=(l-1)){
					System.out.print(" ");
				}
			}
			//if(i!=(n-1)){
				System.out.println();
			//}
		} i=0; i=0 i 0 i<n i n i++ i++ i {
			for(j=0;j<l;j++){
				System.out.print(veca[i][j]);
				if(j!=(l-1)){
					System.out.print(" ");
				}
			}
			//if(i!=(n-1)){
				System.out.println();
			//}
		} {
			for(j=0;j<l;j++){
				System.out.print(veca[i][j]);
				if(j!=(l-1)){
					System.out.print(" ");
				}
			}
			//if(i!=(n-1)){
				System.out.println();
			//}
		} for(j=0;j<l;j++){
				System.out.print(veca[i][j]);
				if(j!=(l-1)){
					System.out.print(" ");
				}
			} j=0; j=0 j 0 j<l j l j++ j++ j {
				System.out.print(veca[i][j]);
				if(j!=(l-1)){
					System.out.print(" ");
				}
			} {
				System.out.print(veca[i][j]);
				if(j!=(l-1)){
					System.out.print(" ");
				}
			} System.out.print(veca[i][j]) System.out.print System.out System System.out veca[i][j] veca[i] veca i j if(j!=(l-1)){
					System.out.print(" ");
				} j!=(l-1) j (l-1) l 1 {
					System.out.print(" ");
				} 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 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();
		int vecnm[][] = new int[n][m];
		int vecml[][] = new int[m][l];
		int i,j,k;
		long veca[][] = new long[n][l];
		
		for(i=0;i<n;i++){
			for(j=0;j<m;j++){
				vecnm[i][j] = sc.nextInt();
			}
		}
		for(i=0;i<m;i++){
			for(j=0;j<l;j++){
				vecml[i][j] = sc.nextInt();
			}
			
		}
		sc.close();
		
		for(i=0;i<n;i++){
			for(j=0;j<l;j++){
				for(k=0;k<m;k++){
					veca[i][j]+=vecnm[i][k]*vecml[k][j];
				}
			}
		}
		for(i=0;i<n;i++){
			for(j=0;j<l;j++){
				System.out.print(veca[i][j]);
				if(j!=(l-1)){
					System.out.print(" ");
				}
			}
			//if(i!=(n-1)){
				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();
		int vecnm[][] = new int[n][m];
		int vecml[][] = new int[m][l];
		int i,j,k;
		long veca[][] = new long[n][l];
		
		for(i=0;i<n;i++){
			for(j=0;j<m;j++){
				vecnm[i][j] = sc.nextInt();
			}
		}
		for(i=0;i<m;i++){
			for(j=0;j<l;j++){
				vecml[i][j] = sc.nextInt();
			}
			
		}
		sc.close();
		
		for(i=0;i<n;i++){
			for(j=0;j<l;j++){
				for(k=0;k<m;k++){
					veca[i][j]+=vecnm[i][k]*vecml[k][j];
				}
			}
		}
		for(i=0;i<n;i++){
			for(j=0;j<l;j++){
				System.out.print(veca[i][j]);
				if(j!=(l-1)){
					System.out.print(" ");
				}
			}
			//if(i!=(n-1)){
				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();
		int vecnm[][] = new int[n][m];
		int vecml[][] = new int[m][l];
		int i,j,k;
		long veca[][] = new long[n][l];
		
		for(i=0;i<n;i++){
			for(j=0;j<m;j++){
				vecnm[i][j] = sc.nextInt();
			}
		}
		for(i=0;i<m;i++){
			for(j=0;j<l;j++){
				vecml[i][j] = sc.nextInt();
			}
			
		}
		sc.close();
		
		for(i=0;i<n;i++){
			for(j=0;j<l;j++){
				for(k=0;k<m;k++){
					veca[i][j]+=vecnm[i][k]*vecml[k][j];
				}
			}
		}
		for(i=0;i<n;i++){
			for(j=0;j<l;j++){
				System.out.print(veca[i][j]);
				if(j!=(l-1)){
					System.out.print(" ");
				}
			}
			//if(i!=(n-1)){
				System.out.println();
			//}
		}
	}

}
