import java.io.IOException;
import java.util.Scanner;
class Main{
	public static void main(String[] args)throws NumberFormatException, IOException{
		//System.out.print(" ");
		Scanner scan = new Scanner(System.in);
		int n =scan.nextInt();
		int m =scan.nextInt();
		int l =scan.nextInt();
		int A[][] = new int[100][100];	//[???][?¨?]
		int B[][] = new int[100][100];
		long keisan = 0;

		for(int i =0; i<n; i++){	//??????A?????????
			for(int ii=0;ii<m;ii++){
				A[i][ii] = scan.nextInt();
			}
		}

		for(int i=0;i<m;i++){	//??????B?????????
			for(int ii=0;ii<l;ii++){
				B[i][ii] = scan.nextInt();
			}
		}

		for (int i=0; i<n; i++){	//?¨????????????????C???
			for(int ii=0; ii<l; ii++){
				keisan = 0;
				for(int iii=0; iii<m; iii++){
					keisan += A[i][iii] * B[iii][ii];
				}
				System.out.print(keisan);
				if(ii < l-1){
					System.out.print(" ");
				}
			}
			System.out.println("");
		}
	}
} import java.io.IOException; IOException java.io import java.util.Scanner; Scanner java.util class Main{
	public static void main(String[] args)throws NumberFormatException, IOException{
		//System.out.print(" ");
		Scanner scan = new Scanner(System.in);
		int n =scan.nextInt();
		int m =scan.nextInt();
		int l =scan.nextInt();
		int A[][] = new int[100][100];	//[???][?¨?]
		int B[][] = new int[100][100];
		long keisan = 0;

		for(int i =0; i<n; i++){	//??????A?????????
			for(int ii=0;ii<m;ii++){
				A[i][ii] = scan.nextInt();
			}
		}

		for(int i=0;i<m;i++){	//??????B?????????
			for(int ii=0;ii<l;ii++){
				B[i][ii] = scan.nextInt();
			}
		}

		for (int i=0; i<n; i++){	//?¨????????????????C???
			for(int ii=0; ii<l; ii++){
				keisan = 0;
				for(int iii=0; iii<m; iii++){
					keisan += A[i][iii] * B[iii][ii];
				}
				System.out.print(keisan);
				if(ii < l-1){
					System.out.print(" ");
				}
			}
			System.out.println("");
		}
	}
} Main public static void main(String[] args)throws NumberFormatException, IOException{
		//System.out.print(" ");
		Scanner scan = new Scanner(System.in);
		int n =scan.nextInt();
		int m =scan.nextInt();
		int l =scan.nextInt();
		int A[][] = new int[100][100];	//[???][?¨?]
		int B[][] = new int[100][100];
		long keisan = 0;

		for(int i =0; i<n; i++){	//??????A?????????
			for(int ii=0;ii<m;ii++){
				A[i][ii] = scan.nextInt();
			}
		}

		for(int i=0;i<m;i++){	//??????B?????????
			for(int ii=0;ii<l;ii++){
				B[i][ii] = scan.nextInt();
			}
		}

		for (int i=0; i<n; i++){	//?¨????????????????C???
			for(int ii=0; ii<l; ii++){
				keisan = 0;
				for(int iii=0; iii<m; iii++){
					keisan += A[i][iii] * B[iii][ii];
				}
				System.out.print(keisan);
				if(ii < l-1){
					System.out.print(" ");
				}
			}
			System.out.println("");
		}
	} main {
		//System.out.print(" ");
		Scanner scan = new Scanner(System.in);
		int n =scan.nextInt();
		int m =scan.nextInt();
		int l =scan.nextInt();
		int A[][] = new int[100][100];	//[???][?¨?]
		int B[][] = new int[100][100];
		long keisan = 0;

		for(int i =0; i<n; i++){	//??????A?????????
			for(int ii=0;ii<m;ii++){
				A[i][ii] = scan.nextInt();
			}
		}

		for(int i=0;i<m;i++){	//??????B?????????
			for(int ii=0;ii<l;ii++){
				B[i][ii] = scan.nextInt();
			}
		}

		for (int i=0; i<n; i++){	//?¨????????????????C???
			for(int ii=0; ii<l; ii++){
				keisan = 0;
				for(int iii=0; iii<m; iii++){
					keisan += A[i][iii] * B[iii][ii];
				}
				System.out.print(keisan);
				if(ii < l-1){
					System.out.print(" ");
				}
			}
			System.out.println("");
		}
	} Scanner scan = new Scanner(System.in); scan new Scanner(System.in) int n =scan.nextInt(); n scan.nextInt() scan.nextInt scan int m =scan.nextInt(); m scan.nextInt() scan.nextInt scan int l =scan.nextInt(); l scan.nextInt() scan.nextInt scan int A[][] = new int[100][100]; A new int[100][100] 100 100 int B[][] = new int[100][100]; B new int[100][100] 100 100 long keisan = 0; keisan 0 for(int i =0; i<n; i++){	//??????A?????????
			for(int ii=0;ii<m;ii++){
				A[i][ii] = scan.nextInt();
			}
		} int i =0; int i =0; i 0 i<n i n i++ i++ i {	//??????A?????????
			for(int ii=0;ii<m;ii++){
				A[i][ii] = scan.nextInt();
			}
		} {	//??????A?????????
			for(int ii=0;ii<m;ii++){
				A[i][ii] = scan.nextInt();
			}
		} for(int ii=0;ii<m;ii++){
				A[i][ii] = scan.nextInt();
			} int ii=0; int ii=0; ii 0 ii<m ii m ii++ ii++ ii {
				A[i][ii] = scan.nextInt();
			} {
				A[i][ii] = scan.nextInt();
			} A[i][ii] = scan.nextInt() A[i][ii] A[i] A i ii scan.nextInt() scan.nextInt scan for(int i=0;i<m;i++){	//??????B?????????
			for(int ii=0;ii<l;ii++){
				B[i][ii] = scan.nextInt();
			}
		} int i=0; int i=0; i 0 i<m i m i++ i++ i {	//??????B?????????
			for(int ii=0;ii<l;ii++){
				B[i][ii] = scan.nextInt();
			}
		} {	//??????B?????????
			for(int ii=0;ii<l;ii++){
				B[i][ii] = scan.nextInt();
			}
		} for(int ii=0;ii<l;ii++){
				B[i][ii] = scan.nextInt();
			} int ii=0; int ii=0; ii 0 ii<l ii l ii++ ii++ ii {
				B[i][ii] = scan.nextInt();
			} {
				B[i][ii] = scan.nextInt();
			} B[i][ii] = scan.nextInt() B[i][ii] B[i] B i ii scan.nextInt() scan.nextInt scan for (int i=0; i<n; i++){	//?¨????????????????C???
			for(int ii=0; ii<l; ii++){
				keisan = 0;
				for(int iii=0; iii<m; iii++){
					keisan += A[i][iii] * B[iii][ii];
				}
				System.out.print(keisan);
				if(ii < l-1){
					System.out.print(" ");
				}
			}
			System.out.println("");
		} int i=0; int i=0; i 0 i<n i n i++ i++ i {	//?¨????????????????C???
			for(int ii=0; ii<l; ii++){
				keisan = 0;
				for(int iii=0; iii<m; iii++){
					keisan += A[i][iii] * B[iii][ii];
				}
				System.out.print(keisan);
				if(ii < l-1){
					System.out.print(" ");
				}
			}
			System.out.println("");
		} {	//?¨????????????????C???
			for(int ii=0; ii<l; ii++){
				keisan = 0;
				for(int iii=0; iii<m; iii++){
					keisan += A[i][iii] * B[iii][ii];
				}
				System.out.print(keisan);
				if(ii < l-1){
					System.out.print(" ");
				}
			}
			System.out.println("");
		} for(int ii=0; ii<l; ii++){
				keisan = 0;
				for(int iii=0; iii<m; iii++){
					keisan += A[i][iii] * B[iii][ii];
				}
				System.out.print(keisan);
				if(ii < l-1){
					System.out.print(" ");
				}
			} int ii=0; int ii=0; ii 0 ii<l ii l ii++ ii++ ii {
				keisan = 0;
				for(int iii=0; iii<m; iii++){
					keisan += A[i][iii] * B[iii][ii];
				}
				System.out.print(keisan);
				if(ii < l-1){
					System.out.print(" ");
				}
			} {
				keisan = 0;
				for(int iii=0; iii<m; iii++){
					keisan += A[i][iii] * B[iii][ii];
				}
				System.out.print(keisan);
				if(ii < l-1){
					System.out.print(" ");
				}
			} keisan = 0 keisan 0 for(int iii=0; iii<m; iii++){
					keisan += A[i][iii] * B[iii][ii];
				} int iii=0; int iii=0; iii 0 iii<m iii m iii++ iii++ iii {
					keisan += A[i][iii] * B[iii][ii];
				} {
					keisan += A[i][iii] * B[iii][ii];
				} keisan += A[i][iii] * B[iii][ii] keisan A[i][iii] * B[iii][ii] A[i][iii] A[i] A i iii B[iii][ii] B[iii] B iii ii System.out.print(keisan) System.out.print System.out System System.out keisan if(ii < l-1){
					System.out.print(" ");
				} ii < l-1 ii 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
import java.io.IOException;
import java.util.Scanner;
class Main{
	public static void main(String[] args)throws NumberFormatException, IOException{
		//System.out.print(" ");
		Scanner scan = new Scanner(System.in);
		int n =scan.nextInt();
		int m =scan.nextInt();
		int l =scan.nextInt();
		int A[][] = new int[100][100];	//[???][?¨?]
		int B[][] = new int[100][100];
		long keisan = 0;

		for(int i =0; i<n; i++){	//??????A?????????
			for(int ii=0;ii<m;ii++){
				A[i][ii] = scan.nextInt();
			}
		}

		for(int i=0;i<m;i++){	//??????B?????????
			for(int ii=0;ii<l;ii++){
				B[i][ii] = scan.nextInt();
			}
		}

		for (int i=0; i<n; i++){	//?¨????????????????C???
			for(int ii=0; ii<l; ii++){
				keisan = 0;
				for(int iii=0; iii<m; iii++){
					keisan += A[i][iii] * B[iii][ii];
				}
				System.out.print(keisan);
				if(ii < l-1){
					System.out.print(" ");
				}
			}
			System.out.println("");
		}
	}
}