import java.util.Scanner;

class Main{
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);

		int n = scan.nextInt();
		int m = scan.nextInt();
		int l = scan.nextInt();
	    int [][] detA = new int [n][m];
	    int [][] detB = new int [m][l];
	    long [][] detC = new long [n][l];

	    for(int i = 0 ; i < detA.length ; i++){
	    	for(int j = 0 ; j < detA[i].length ; j++){
	    		detA[i][j] = scan.nextInt();
	    	}
	    }

	    for(int i = 0 ; i < detB.length ; i++){
	    	for(int j = 0 ; j < detB[i].length ; j++){
	    		detB[i][j] = scan.nextInt();
	    	}
	    }

	    for(int i = 0 ; i < n ; i++){
	    	for(int j = 0 ; j < l ; j++){
	    		for(int k = 0 ; k < m ; k++){
	    			detC[i][j] += detA[i][k]*detB[k][j];
	    		}
	    	}
	    }

	    for(int i = 0 ; i < detC.length ; i++){
	    	for(int j = 0 ; j < detC[i].length ; j++){
	    		System.out.print(detC[i][j]);
                  if(j == detC[i].length -1) continue;
	    		System.out.print(" ");
	    	}
	    	System.out.println();
	    }

	    scan.close();
 	}
} import java.util.Scanner; Scanner java.util class Main{
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);

		int n = scan.nextInt();
		int m = scan.nextInt();
		int l = scan.nextInt();
	    int [][] detA = new int [n][m];
	    int [][] detB = new int [m][l];
	    long [][] detC = new long [n][l];

	    for(int i = 0 ; i < detA.length ; i++){
	    	for(int j = 0 ; j < detA[i].length ; j++){
	    		detA[i][j] = scan.nextInt();
	    	}
	    }

	    for(int i = 0 ; i < detB.length ; i++){
	    	for(int j = 0 ; j < detB[i].length ; j++){
	    		detB[i][j] = scan.nextInt();
	    	}
	    }

	    for(int i = 0 ; i < n ; i++){
	    	for(int j = 0 ; j < l ; j++){
	    		for(int k = 0 ; k < m ; k++){
	    			detC[i][j] += detA[i][k]*detB[k][j];
	    		}
	    	}
	    }

	    for(int i = 0 ; i < detC.length ; i++){
	    	for(int j = 0 ; j < detC[i].length ; j++){
	    		System.out.print(detC[i][j]);
                  if(j == detC[i].length -1) continue;
	    		System.out.print(" ");
	    	}
	    	System.out.println();
	    }

	    scan.close();
 	}
} Main public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);

		int n = scan.nextInt();
		int m = scan.nextInt();
		int l = scan.nextInt();
	    int [][] detA = new int [n][m];
	    int [][] detB = new int [m][l];
	    long [][] detC = new long [n][l];

	    for(int i = 0 ; i < detA.length ; i++){
	    	for(int j = 0 ; j < detA[i].length ; j++){
	    		detA[i][j] = scan.nextInt();
	    	}
	    }

	    for(int i = 0 ; i < detB.length ; i++){
	    	for(int j = 0 ; j < detB[i].length ; j++){
	    		detB[i][j] = scan.nextInt();
	    	}
	    }

	    for(int i = 0 ; i < n ; i++){
	    	for(int j = 0 ; j < l ; j++){
	    		for(int k = 0 ; k < m ; k++){
	    			detC[i][j] += detA[i][k]*detB[k][j];
	    		}
	    	}
	    }

	    for(int i = 0 ; i < detC.length ; i++){
	    	for(int j = 0 ; j < detC[i].length ; j++){
	    		System.out.print(detC[i][j]);
                  if(j == detC[i].length -1) continue;
	    		System.out.print(" ");
	    	}
	    	System.out.println();
	    }

	    scan.close();
 	} main {
		Scanner scan = new Scanner(System.in);

		int n = scan.nextInt();
		int m = scan.nextInt();
		int l = scan.nextInt();
	    int [][] detA = new int [n][m];
	    int [][] detB = new int [m][l];
	    long [][] detC = new long [n][l];

	    for(int i = 0 ; i < detA.length ; i++){
	    	for(int j = 0 ; j < detA[i].length ; j++){
	    		detA[i][j] = scan.nextInt();
	    	}
	    }

	    for(int i = 0 ; i < detB.length ; i++){
	    	for(int j = 0 ; j < detB[i].length ; j++){
	    		detB[i][j] = scan.nextInt();
	    	}
	    }

	    for(int i = 0 ; i < n ; i++){
	    	for(int j = 0 ; j < l ; j++){
	    		for(int k = 0 ; k < m ; k++){
	    			detC[i][j] += detA[i][k]*detB[k][j];
	    		}
	    	}
	    }

	    for(int i = 0 ; i < detC.length ; i++){
	    	for(int j = 0 ; j < detC[i].length ; j++){
	    		System.out.print(detC[i][j]);
                  if(j == detC[i].length -1) continue;
	    		System.out.print(" ");
	    	}
	    	System.out.println();
	    }

	    scan.close();
 	} 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 [][] detA = new int [n][m]; detA new int [n][m] n m int [][] detB = new int [m][l]; detB new int [m][l] m l long [][] detC = new long [n][l]; detC new long [n][l] n l for(int i = 0 ; i < detA.length ; i++){
	    	for(int j = 0 ; j < detA[i].length ; j++){
	    		detA[i][j] = scan.nextInt();
	    	}
	    } int i = 0 ; int i = 0 ; i 0 i < detA.length i detA.length detA detA.length i++ i++ i {
	    	for(int j = 0 ; j < detA[i].length ; j++){
	    		detA[i][j] = scan.nextInt();
	    	}
	    } {
	    	for(int j = 0 ; j < detA[i].length ; j++){
	    		detA[i][j] = scan.nextInt();
	    	}
	    } for(int j = 0 ; j < detA[i].length ; j++){
	    		detA[i][j] = scan.nextInt();
	    	} int j = 0 ; int j = 0 ; j 0 j < detA[i].length j detA[i].length detA[i] detA i detA[i].length j++ j++ j {
	    		detA[i][j] = scan.nextInt();
	    	} {
	    		detA[i][j] = scan.nextInt();
	    	} detA[i][j] = scan.nextInt() detA[i][j] detA[i] detA i j scan.nextInt() scan.nextInt scan for(int i = 0 ; i < detB.length ; i++){
	    	for(int j = 0 ; j < detB[i].length ; j++){
	    		detB[i][j] = scan.nextInt();
	    	}
	    } int i = 0 ; int i = 0 ; i 0 i < detB.length i detB.length detB detB.length i++ i++ i {
	    	for(int j = 0 ; j < detB[i].length ; j++){
	    		detB[i][j] = scan.nextInt();
	    	}
	    } {
	    	for(int j = 0 ; j < detB[i].length ; j++){
	    		detB[i][j] = scan.nextInt();
	    	}
	    } for(int j = 0 ; j < detB[i].length ; j++){
	    		detB[i][j] = scan.nextInt();
	    	} int j = 0 ; int j = 0 ; j 0 j < detB[i].length j detB[i].length detB[i] detB i detB[i].length j++ j++ j {
	    		detB[i][j] = scan.nextInt();
	    	} {
	    		detB[i][j] = scan.nextInt();
	    	} detB[i][j] = scan.nextInt() detB[i][j] detB[i] detB i j scan.nextInt() scan.nextInt scan for(int i = 0 ; i < n ; i++){
	    	for(int j = 0 ; j < l ; j++){
	    		for(int k = 0 ; k < m ; k++){
	    			detC[i][j] += detA[i][k]*detB[k][j];
	    		}
	    	}
	    } int i = 0 ; int i = 0 ; i 0 i < n i n i++ i++ i {
	    	for(int j = 0 ; j < l ; j++){
	    		for(int k = 0 ; k < m ; k++){
	    			detC[i][j] += detA[i][k]*detB[k][j];
	    		}
	    	}
	    } {
	    	for(int j = 0 ; j < l ; j++){
	    		for(int k = 0 ; k < m ; k++){
	    			detC[i][j] += detA[i][k]*detB[k][j];
	    		}
	    	}
	    } for(int j = 0 ; j < l ; j++){
	    		for(int k = 0 ; k < m ; k++){
	    			detC[i][j] += detA[i][k]*detB[k][j];
	    		}
	    	} int j = 0 ; int j = 0 ; j 0 j < l j l j++ j++ j {
	    		for(int k = 0 ; k < m ; k++){
	    			detC[i][j] += detA[i][k]*detB[k][j];
	    		}
	    	} {
	    		for(int k = 0 ; k < m ; k++){
	    			detC[i][j] += detA[i][k]*detB[k][j];
	    		}
	    	} for(int k = 0 ; k < m ; k++){
	    			detC[i][j] += detA[i][k]*detB[k][j];
	    		} int k = 0 ; int k = 0 ; k 0 k < m k m k++ k++ k {
	    			detC[i][j] += detA[i][k]*detB[k][j];
	    		} {
	    			detC[i][j] += detA[i][k]*detB[k][j];
	    		} detC[i][j] += detA[i][k]*detB[k][j] detC[i][j] detC[i] detC i j detA[i][k]*detB[k][j] detA[i][k] detA[i] detA i k detB[k][j] detB[k] detB k j for(int i = 0 ; i < detC.length ; i++){
	    	for(int j = 0 ; j < detC[i].length ; j++){
	    		System.out.print(detC[i][j]);
                  if(j == detC[i].length -1) continue;
	    		System.out.print(" ");
	    	}
	    	System.out.println();
	    } int i = 0 ; int i = 0 ; i 0 i < detC.length i detC.length detC detC.length i++ i++ i {
	    	for(int j = 0 ; j < detC[i].length ; j++){
	    		System.out.print(detC[i][j]);
                  if(j == detC[i].length -1) continue;
	    		System.out.print(" ");
	    	}
	    	System.out.println();
	    } {
	    	for(int j = 0 ; j < detC[i].length ; j++){
	    		System.out.print(detC[i][j]);
                  if(j == detC[i].length -1) continue;
	    		System.out.print(" ");
	    	}
	    	System.out.println();
	    } for(int j = 0 ; j < detC[i].length ; j++){
	    		System.out.print(detC[i][j]);
                  if(j == detC[i].length -1) continue;
	    		System.out.print(" ");
	    	} int j = 0 ; int j = 0 ; j 0 j < detC[i].length j detC[i].length detC[i] detC i detC[i].length j++ j++ j {
	    		System.out.print(detC[i][j]);
                  if(j == detC[i].length -1) continue;
	    		System.out.print(" ");
	    	} {
	    		System.out.print(detC[i][j]);
                  if(j == detC[i].length -1) continue;
	    		System.out.print(" ");
	    	} System.out.print(detC[i][j]) System.out.print System.out System System.out detC[i][j] detC[i] detC i j if(j == detC[i].length -1) continue; j == detC[i].length -1 j detC[i].length -1 detC[i].length detC[i] detC i detC[i].length 1 continue; System.out.print(" ") System.out.print System.out System System.out " " System.out.println() System.out.println System.out System System.out scan.close() scan.close scan String[] args args
import java.util.Scanner;

class Main{
	public static void main(String[] args) {
		Scanner scan = new Scanner(System.in);

		int n = scan.nextInt();
		int m = scan.nextInt();
		int l = scan.nextInt();
	    int [][] detA = new int [n][m];
	    int [][] detB = new int [m][l];
	    long [][] detC = new long [n][l];

	    for(int i = 0 ; i < detA.length ; i++){
	    	for(int j = 0 ; j < detA[i].length ; j++){
	    		detA[i][j] = scan.nextInt();
	    	}
	    }

	    for(int i = 0 ; i < detB.length ; i++){
	    	for(int j = 0 ; j < detB[i].length ; j++){
	    		detB[i][j] = scan.nextInt();
	    	}
	    }

	    for(int i = 0 ; i < n ; i++){
	    	for(int j = 0 ; j < l ; j++){
	    		for(int k = 0 ; k < m ; k++){
	    			detC[i][j] += detA[i][k]*detB[k][j];
	    		}
	    	}
	    }

	    for(int i = 0 ; i < detC.length ; i++){
	    	for(int j = 0 ; j < detC[i].length ; j++){
	    		System.out.print(detC[i][j]);
                  if(j == detC[i].length -1) continue;
	    		System.out.print(" ");
	    	}
	    	System.out.println();
	    }

	    scan.close();
 	}
}