import java.util.*;
 
public 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[][] vecA = new int[n][m];
		int[][] vecB = new int[m][l];
		
		// input
		for( int i = 0; i < n; i++ ) {
			for( int j = 0; j < m; j++ ) {
				vecA[i][j] = scan.nextInt();
				
			}
		}
		
		for( int i = 0; i < m; i++ ) {
			for( int j = 0; j < l; j++ ) {
				vecB[i][j] = scan.nextInt();
				
			}
		}
		
		int[][] vecC = new int[n][l];
		for( int i = 0; i < n; i++ ) {
			for( int k = 0; k < l; k++ ) {
				long sum = 0;
				
				for( int j = 0; j < m; j++ ) {
					sum += vecA[i][j] * vecB[j][k];
					
				}
				
				System.out.print((k == 0 ? "" : " ") + sum);
				
			}
			System.out.println();
		}
		
	}
} import java.util.*; util.* java public 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[][] vecA = new int[n][m];
		int[][] vecB = new int[m][l];
		
		// input
		for( int i = 0; i < n; i++ ) {
			for( int j = 0; j < m; j++ ) {
				vecA[i][j] = scan.nextInt();
				
			}
		}
		
		for( int i = 0; i < m; i++ ) {
			for( int j = 0; j < l; j++ ) {
				vecB[i][j] = scan.nextInt();
				
			}
		}
		
		int[][] vecC = new int[n][l];
		for( int i = 0; i < n; i++ ) {
			for( int k = 0; k < l; k++ ) {
				long sum = 0;
				
				for( int j = 0; j < m; j++ ) {
					sum += vecA[i][j] * vecB[j][k];
					
				}
				
				System.out.print((k == 0 ? "" : " ") + sum);
				
			}
			System.out.println();
		}
		
	}
} 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[][] vecA = new int[n][m];
		int[][] vecB = new int[m][l];
		
		// input
		for( int i = 0; i < n; i++ ) {
			for( int j = 0; j < m; j++ ) {
				vecA[i][j] = scan.nextInt();
				
			}
		}
		
		for( int i = 0; i < m; i++ ) {
			for( int j = 0; j < l; j++ ) {
				vecB[i][j] = scan.nextInt();
				
			}
		}
		
		int[][] vecC = new int[n][l];
		for( int i = 0; i < n; i++ ) {
			for( int k = 0; k < l; k++ ) {
				long sum = 0;
				
				for( int j = 0; j < m; j++ ) {
					sum += vecA[i][j] * vecB[j][k];
					
				}
				
				System.out.print((k == 0 ? "" : " ") + sum);
				
			}
			System.out.println();
		}
		
	} main {
        Scanner scan = new Scanner( System.in );

        int n = scan.nextInt();
		int m = scan.nextInt();
		int l = scan.nextInt();
		
		
		int[][] vecA = new int[n][m];
		int[][] vecB = new int[m][l];
		
		// input
		for( int i = 0; i < n; i++ ) {
			for( int j = 0; j < m; j++ ) {
				vecA[i][j] = scan.nextInt();
				
			}
		}
		
		for( int i = 0; i < m; i++ ) {
			for( int j = 0; j < l; j++ ) {
				vecB[i][j] = scan.nextInt();
				
			}
		}
		
		int[][] vecC = new int[n][l];
		for( int i = 0; i < n; i++ ) {
			for( int k = 0; k < l; k++ ) {
				long sum = 0;
				
				for( int j = 0; j < m; j++ ) {
					sum += vecA[i][j] * vecB[j][k];
					
				}
				
				System.out.print((k == 0 ? "" : " ") + sum);
				
			}
			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[][] vecA = new int[n][m]; vecA new int[n][m] n m int[][] vecB = new int[m][l]; vecB new int[m][l] m l for( int i = 0; i < n; i++ ) {
			for( int j = 0; j < m; j++ ) {
				vecA[i][j] = scan.nextInt();
				
			}
		} int i = 0; int i = 0; i 0 i < n i n i++ i++ i {
			for( int j = 0; j < m; j++ ) {
				vecA[i][j] = scan.nextInt();
				
			}
		} {
			for( int j = 0; j < m; j++ ) {
				vecA[i][j] = scan.nextInt();
				
			}
		} for( int j = 0; j < m; j++ ) {
				vecA[i][j] = scan.nextInt();
				
			} int j = 0; int j = 0; j 0 j < m j m j++ j++ j {
				vecA[i][j] = scan.nextInt();
				
			} {
				vecA[i][j] = scan.nextInt();
				
			} vecA[i][j] = scan.nextInt() vecA[i][j] vecA[i] vecA i j scan.nextInt() scan.nextInt scan for( int i = 0; i < m; i++ ) {
			for( int j = 0; j < l; j++ ) {
				vecB[i][j] = scan.nextInt();
				
			}
		} int i = 0; int i = 0; i 0 i < m i m i++ i++ i {
			for( int j = 0; j < l; j++ ) {
				vecB[i][j] = scan.nextInt();
				
			}
		} {
			for( int j = 0; j < l; j++ ) {
				vecB[i][j] = scan.nextInt();
				
			}
		} for( int j = 0; j < l; j++ ) {
				vecB[i][j] = scan.nextInt();
				
			} int j = 0; int j = 0; j 0 j < l j l j++ j++ j {
				vecB[i][j] = scan.nextInt();
				
			} {
				vecB[i][j] = scan.nextInt();
				
			} vecB[i][j] = scan.nextInt() vecB[i][j] vecB[i] vecB i j scan.nextInt() scan.nextInt scan int[][] vecC = new int[n][l]; vecC new int[n][l] n l for( int i = 0; i < n; i++ ) {
			for( int k = 0; k < l; k++ ) {
				long sum = 0;
				
				for( int j = 0; j < m; j++ ) {
					sum += vecA[i][j] * vecB[j][k];
					
				}
				
				System.out.print((k == 0 ? "" : " ") + sum);
				
			}
			System.out.println();
		} int i = 0; int i = 0; i 0 i < n i n i++ i++ i {
			for( int k = 0; k < l; k++ ) {
				long sum = 0;
				
				for( int j = 0; j < m; j++ ) {
					sum += vecA[i][j] * vecB[j][k];
					
				}
				
				System.out.print((k == 0 ? "" : " ") + sum);
				
			}
			System.out.println();
		} {
			for( int k = 0; k < l; k++ ) {
				long sum = 0;
				
				for( int j = 0; j < m; j++ ) {
					sum += vecA[i][j] * vecB[j][k];
					
				}
				
				System.out.print((k == 0 ? "" : " ") + sum);
				
			}
			System.out.println();
		} for( int k = 0; k < l; k++ ) {
				long sum = 0;
				
				for( int j = 0; j < m; j++ ) {
					sum += vecA[i][j] * vecB[j][k];
					
				}
				
				System.out.print((k == 0 ? "" : " ") + sum);
				
			} int k = 0; int k = 0; k 0 k < l k l k++ k++ k {
				long sum = 0;
				
				for( int j = 0; j < m; j++ ) {
					sum += vecA[i][j] * vecB[j][k];
					
				}
				
				System.out.print((k == 0 ? "" : " ") + sum);
				
			} {
				long sum = 0;
				
				for( int j = 0; j < m; j++ ) {
					sum += vecA[i][j] * vecB[j][k];
					
				}
				
				System.out.print((k == 0 ? "" : " ") + sum);
				
			} long sum = 0; sum 0 for( int j = 0; j < m; j++ ) {
					sum += vecA[i][j] * vecB[j][k];
					
				} int j = 0; int j = 0; j 0 j < m j m j++ j++ j {
					sum += vecA[i][j] * vecB[j][k];
					
				} {
					sum += vecA[i][j] * vecB[j][k];
					
				} sum += vecA[i][j] * vecB[j][k] sum vecA[i][j] * vecB[j][k] vecA[i][j] vecA[i] vecA i j vecB[j][k] vecB[j] vecB j k System.out.print((k == 0 ? "" : " ") + sum) System.out.print System.out System System.out (k == 0 ? "" : " ") + sum (k == 0 ? "" : " ") k == 0 k 0 "" " " sum System.out.println() System.out.println System.out System System.out String args[] args public 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[][] vecA = new int[n][m];
		int[][] vecB = new int[m][l];
		
		// input
		for( int i = 0; i < n; i++ ) {
			for( int j = 0; j < m; j++ ) {
				vecA[i][j] = scan.nextInt();
				
			}
		}
		
		for( int i = 0; i < m; i++ ) {
			for( int j = 0; j < l; j++ ) {
				vecB[i][j] = scan.nextInt();
				
			}
		}
		
		int[][] vecC = new int[n][l];
		for( int i = 0; i < n; i++ ) {
			for( int k = 0; k < l; k++ ) {
				long sum = 0;
				
				for( int j = 0; j < m; j++ ) {
					sum += vecA[i][j] * vecB[j][k];
					
				}
				
				System.out.print((k == 0 ? "" : " ") + sum);
				
			}
			System.out.println();
		}
		
	}
} public 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[][] vecA = new int[n][m];
		int[][] vecB = new int[m][l];
		
		// input
		for( int i = 0; i < n; i++ ) {
			for( int j = 0; j < m; j++ ) {
				vecA[i][j] = scan.nextInt();
				
			}
		}
		
		for( int i = 0; i < m; i++ ) {
			for( int j = 0; j < l; j++ ) {
				vecB[i][j] = scan.nextInt();
				
			}
		}
		
		int[][] vecC = new int[n][l];
		for( int i = 0; i < n; i++ ) {
			for( int k = 0; k < l; k++ ) {
				long sum = 0;
				
				for( int j = 0; j < m; j++ ) {
					sum += vecA[i][j] * vecB[j][k];
					
				}
				
				System.out.print((k == 0 ? "" : " ") + sum);
				
			}
			System.out.println();
		}
		
	}
} Main
import java.util.*;
 
public 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[][] vecA = new int[n][m];
		int[][] vecB = new int[m][l];
		
		// input
		for( int i = 0; i < n; i++ ) {
			for( int j = 0; j < m; j++ ) {
				vecA[i][j] = scan.nextInt();
				
			}
		}
		
		for( int i = 0; i < m; i++ ) {
			for( int j = 0; j < l; j++ ) {
				vecB[i][j] = scan.nextInt();
				
			}
		}
		
		int[][] vecC = new int[n][l];
		for( int i = 0; i < n; i++ ) {
			for( int k = 0; k < l; k++ ) {
				long sum = 0;
				
				for( int j = 0; j < m; j++ ) {
					sum += vecA[i][j] * vecB[j][k];
					
				}
				
				System.out.print((k == 0 ? "" : " ") + sum);
				
			}
			System.out.println();
		}
		
	}
}