import java.util.*;

public class Main {
	private static Scanner sc=new Scanner(System.in);;

	public static void main(String args[]) {
		while(sc.hasNextInt()){
			int n = sc.nextInt();
			int m = sc.nextInt();
			int l = sc.nextInt();
			long temp1[][] = new long[n][m];
			long  temp2[][] = new long[m][l];
			for (int i=0;i<n;i++) {
				for (int j=0;j<m;j++) {
					temp1[i][j] = sc.nextLong();
				}
			}
			for (int i=0;i<m;i++){
				for(int j=0;j<l;j++) {
					temp2[i][j]=sc.nextLong();
				}
			}
			for(int i=0;i<n;i++){
				for(int j=0;j<l;j++) {
					long ans=0;
					for (int k=0;k<m;k++) {
						ans+=temp1[i][k]*temp2[k][j];
					}
					System.out.printf(j==l-1?"%d%n":"%d ",ans);
				}
			}
		}
	}
} import java.util.*; util.* java public class Main {
	private static Scanner sc=new Scanner(System.in);;

	public static void main(String args[]) {
		while(sc.hasNextInt()){
			int n = sc.nextInt();
			int m = sc.nextInt();
			int l = sc.nextInt();
			long temp1[][] = new long[n][m];
			long  temp2[][] = new long[m][l];
			for (int i=0;i<n;i++) {
				for (int j=0;j<m;j++) {
					temp1[i][j] = sc.nextLong();
				}
			}
			for (int i=0;i<m;i++){
				for(int j=0;j<l;j++) {
					temp2[i][j]=sc.nextLong();
				}
			}
			for(int i=0;i<n;i++){
				for(int j=0;j<l;j++) {
					long ans=0;
					for (int k=0;k<m;k++) {
						ans+=temp1[i][k]*temp2[k][j];
					}
					System.out.printf(j==l-1?"%d%n":"%d ",ans);
				}
			}
		}
	}
} Main private static Scanner sc=new Scanner(System.in); sc new Scanner(System.in) public static void main(String args[]) {
		while(sc.hasNextInt()){
			int n = sc.nextInt();
			int m = sc.nextInt();
			int l = sc.nextInt();
			long temp1[][] = new long[n][m];
			long  temp2[][] = new long[m][l];
			for (int i=0;i<n;i++) {
				for (int j=0;j<m;j++) {
					temp1[i][j] = sc.nextLong();
				}
			}
			for (int i=0;i<m;i++){
				for(int j=0;j<l;j++) {
					temp2[i][j]=sc.nextLong();
				}
			}
			for(int i=0;i<n;i++){
				for(int j=0;j<l;j++) {
					long ans=0;
					for (int k=0;k<m;k++) {
						ans+=temp1[i][k]*temp2[k][j];
					}
					System.out.printf(j==l-1?"%d%n":"%d ",ans);
				}
			}
		}
	} main {
		while(sc.hasNextInt()){
			int n = sc.nextInt();
			int m = sc.nextInt();
			int l = sc.nextInt();
			long temp1[][] = new long[n][m];
			long  temp2[][] = new long[m][l];
			for (int i=0;i<n;i++) {
				for (int j=0;j<m;j++) {
					temp1[i][j] = sc.nextLong();
				}
			}
			for (int i=0;i<m;i++){
				for(int j=0;j<l;j++) {
					temp2[i][j]=sc.nextLong();
				}
			}
			for(int i=0;i<n;i++){
				for(int j=0;j<l;j++) {
					long ans=0;
					for (int k=0;k<m;k++) {
						ans+=temp1[i][k]*temp2[k][j];
					}
					System.out.printf(j==l-1?"%d%n":"%d ",ans);
				}
			}
		}
	} while(sc.hasNextInt()){
			int n = sc.nextInt();
			int m = sc.nextInt();
			int l = sc.nextInt();
			long temp1[][] = new long[n][m];
			long  temp2[][] = new long[m][l];
			for (int i=0;i<n;i++) {
				for (int j=0;j<m;j++) {
					temp1[i][j] = sc.nextLong();
				}
			}
			for (int i=0;i<m;i++){
				for(int j=0;j<l;j++) {
					temp2[i][j]=sc.nextLong();
				}
			}
			for(int i=0;i<n;i++){
				for(int j=0;j<l;j++) {
					long ans=0;
					for (int k=0;k<m;k++) {
						ans+=temp1[i][k]*temp2[k][j];
					}
					System.out.printf(j==l-1?"%d%n":"%d ",ans);
				}
			}
		} sc.hasNextInt() sc.hasNextInt sc {
			int n = sc.nextInt();
			int m = sc.nextInt();
			int l = sc.nextInt();
			long temp1[][] = new long[n][m];
			long  temp2[][] = new long[m][l];
			for (int i=0;i<n;i++) {
				for (int j=0;j<m;j++) {
					temp1[i][j] = sc.nextLong();
				}
			}
			for (int i=0;i<m;i++){
				for(int j=0;j<l;j++) {
					temp2[i][j]=sc.nextLong();
				}
			}
			for(int i=0;i<n;i++){
				for(int j=0;j<l;j++) {
					long ans=0;
					for (int k=0;k<m;k++) {
						ans+=temp1[i][k]*temp2[k][j];
					}
					System.out.printf(j==l-1?"%d%n":"%d ",ans);
				}
			}
		} 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 long temp1[][] = new long[n][m]; temp1 new long[n][m] n m long  temp2[][] = new long[m][l]; temp2 new long[m][l] m l for (int i=0;i<n;i++) {
				for (int j=0;j<m;j++) {
					temp1[i][j] = sc.nextLong();
				}
			} int i=0; int i=0; i 0 i<n i n i++ i++ i {
				for (int j=0;j<m;j++) {
					temp1[i][j] = sc.nextLong();
				}
			} {
				for (int j=0;j<m;j++) {
					temp1[i][j] = sc.nextLong();
				}
			} for (int j=0;j<m;j++) {
					temp1[i][j] = sc.nextLong();
				} int j=0; int j=0; j 0 j<m j m j++ j++ j {
					temp1[i][j] = sc.nextLong();
				} {
					temp1[i][j] = sc.nextLong();
				} temp1[i][j] = sc.nextLong() temp1[i][j] temp1[i] temp1 i j sc.nextLong() sc.nextLong sc for (int i=0;i<m;i++){
				for(int j=0;j<l;j++) {
					temp2[i][j]=sc.nextLong();
				}
			} int i=0; int i=0; i 0 i<m i m i++ i++ i {
				for(int j=0;j<l;j++) {
					temp2[i][j]=sc.nextLong();
				}
			} {
				for(int j=0;j<l;j++) {
					temp2[i][j]=sc.nextLong();
				}
			} for(int j=0;j<l;j++) {
					temp2[i][j]=sc.nextLong();
				} int j=0; int j=0; j 0 j<l j l j++ j++ j {
					temp2[i][j]=sc.nextLong();
				} {
					temp2[i][j]=sc.nextLong();
				} temp2[i][j]=sc.nextLong() temp2[i][j] temp2[i] temp2 i j sc.nextLong() sc.nextLong sc for(int i=0;i<n;i++){
				for(int j=0;j<l;j++) {
					long ans=0;
					for (int k=0;k<m;k++) {
						ans+=temp1[i][k]*temp2[k][j];
					}
					System.out.printf(j==l-1?"%d%n":"%d ",ans);
				}
			} int i=0; int i=0; i 0 i<n i n i++ i++ i {
				for(int j=0;j<l;j++) {
					long ans=0;
					for (int k=0;k<m;k++) {
						ans+=temp1[i][k]*temp2[k][j];
					}
					System.out.printf(j==l-1?"%d%n":"%d ",ans);
				}
			} {
				for(int j=0;j<l;j++) {
					long ans=0;
					for (int k=0;k<m;k++) {
						ans+=temp1[i][k]*temp2[k][j];
					}
					System.out.printf(j==l-1?"%d%n":"%d ",ans);
				}
			} for(int j=0;j<l;j++) {
					long ans=0;
					for (int k=0;k<m;k++) {
						ans+=temp1[i][k]*temp2[k][j];
					}
					System.out.printf(j==l-1?"%d%n":"%d ",ans);
				} int j=0; int j=0; j 0 j<l j l j++ j++ j {
					long ans=0;
					for (int k=0;k<m;k++) {
						ans+=temp1[i][k]*temp2[k][j];
					}
					System.out.printf(j==l-1?"%d%n":"%d ",ans);
				} {
					long ans=0;
					for (int k=0;k<m;k++) {
						ans+=temp1[i][k]*temp2[k][j];
					}
					System.out.printf(j==l-1?"%d%n":"%d ",ans);
				} long ans=0; ans 0 for (int k=0;k<m;k++) {
						ans+=temp1[i][k]*temp2[k][j];
					} int k=0; int k=0; k 0 k<m k m k++ k++ k {
						ans+=temp1[i][k]*temp2[k][j];
					} {
						ans+=temp1[i][k]*temp2[k][j];
					} ans+=temp1[i][k]*temp2[k][j] ans temp1[i][k]*temp2[k][j] temp1[i][k] temp1[i] temp1 i k temp2[k][j] temp2[k] temp2 k j System.out.printf(j==l-1?"%d%n":"%d ",ans) System.out.printf System.out System System.out j==l-1?"%d%n":"%d " j==l-1 j l-1 l 1 "%d%n" "%d " ans String args[] args public class Main {
	private static Scanner sc=new Scanner(System.in);;

	public static void main(String args[]) {
		while(sc.hasNextInt()){
			int n = sc.nextInt();
			int m = sc.nextInt();
			int l = sc.nextInt();
			long temp1[][] = new long[n][m];
			long  temp2[][] = new long[m][l];
			for (int i=0;i<n;i++) {
				for (int j=0;j<m;j++) {
					temp1[i][j] = sc.nextLong();
				}
			}
			for (int i=0;i<m;i++){
				for(int j=0;j<l;j++) {
					temp2[i][j]=sc.nextLong();
				}
			}
			for(int i=0;i<n;i++){
				for(int j=0;j<l;j++) {
					long ans=0;
					for (int k=0;k<m;k++) {
						ans+=temp1[i][k]*temp2[k][j];
					}
					System.out.printf(j==l-1?"%d%n":"%d ",ans);
				}
			}
		}
	}
} public class Main {
	private static Scanner sc=new Scanner(System.in);;

	public static void main(String args[]) {
		while(sc.hasNextInt()){
			int n = sc.nextInt();
			int m = sc.nextInt();
			int l = sc.nextInt();
			long temp1[][] = new long[n][m];
			long  temp2[][] = new long[m][l];
			for (int i=0;i<n;i++) {
				for (int j=0;j<m;j++) {
					temp1[i][j] = sc.nextLong();
				}
			}
			for (int i=0;i<m;i++){
				for(int j=0;j<l;j++) {
					temp2[i][j]=sc.nextLong();
				}
			}
			for(int i=0;i<n;i++){
				for(int j=0;j<l;j++) {
					long ans=0;
					for (int k=0;k<m;k++) {
						ans+=temp1[i][k]*temp2[k][j];
					}
					System.out.printf(j==l-1?"%d%n":"%d ",ans);
				}
			}
		}
	}
} Main
import java.util.*;

public class Main {
	private static Scanner sc=new Scanner(System.in);;

	public static void main(String args[]) {
		while(sc.hasNextInt()){
			int n = sc.nextInt();
			int m = sc.nextInt();
			int l = sc.nextInt();
			long temp1[][] = new long[n][m];
			long  temp2[][] = new long[m][l];
			for (int i=0;i<n;i++) {
				for (int j=0;j<m;j++) {
					temp1[i][j] = sc.nextLong();
				}
			}
			for (int i=0;i<m;i++){
				for(int j=0;j<l;j++) {
					temp2[i][j]=sc.nextLong();
				}
			}
			for(int i=0;i<n;i++){
				for(int j=0;j<l;j++) {
					long ans=0;
					for (int k=0;k<m;k++) {
						ans+=temp1[i][k]*temp2[k][j];
					}
					System.out.printf(j==l-1?"%d%n":"%d ",ans);
				}
			}
		}
	}
}