import java.util.Scanner;

class Main{
	public static void main(String[] args) {
		Scanner sc=new Scanner(System.in);
		int n=sc.nextInt();
		int m=sc.nextInt();
		int l=1;
		long[][] m1=new long[n][m];
		long[][] m2=new long[m][l];
		long[][] ans=new long[n][l];
		for(int i=0; i<n; i++) {
			for(int j=0; j<m; j++) {
				m1[i][j]=sc.nextLong();
			}
		}
		for(int i=0; i<m; i++) {
			for(int j=0; j<l; j++) {
				m2[i][j]=sc.nextLong();
			}
		}
		for(int i=0; i<n; i++) {
			for(int j=0; j<l; j++) {
				long tmp=0;
				for(int k=0; k<m; k++) {
					tmp+=m1[i][k]*m2[k][j];
				}
				ans[i][j]=tmp;
			}
		}
		output(ans,n,l);
	}
	public static void output(long[][] a,int h,int w) {
		for(int i=0; i<h; i++) {
			for(int j=0; j<w-1; j++) {
				System.out.print(a[i][j]+" ");
			}
			if(w>0) {
				System.out.println(a[i][w-1]);;
			}
		}
	}
} import java.util.Scanner; Scanner java.util class Main{
	public static void main(String[] args) {
		Scanner sc=new Scanner(System.in);
		int n=sc.nextInt();
		int m=sc.nextInt();
		int l=1;
		long[][] m1=new long[n][m];
		long[][] m2=new long[m][l];
		long[][] ans=new long[n][l];
		for(int i=0; i<n; i++) {
			for(int j=0; j<m; j++) {
				m1[i][j]=sc.nextLong();
			}
		}
		for(int i=0; i<m; i++) {
			for(int j=0; j<l; j++) {
				m2[i][j]=sc.nextLong();
			}
		}
		for(int i=0; i<n; i++) {
			for(int j=0; j<l; j++) {
				long tmp=0;
				for(int k=0; k<m; k++) {
					tmp+=m1[i][k]*m2[k][j];
				}
				ans[i][j]=tmp;
			}
		}
		output(ans,n,l);
	}
	public static void output(long[][] a,int h,int w) {
		for(int i=0; i<h; i++) {
			for(int j=0; j<w-1; j++) {
				System.out.print(a[i][j]+" ");
			}
			if(w>0) {
				System.out.println(a[i][w-1]);;
			}
		}
	}
} Main public static void main(String[] args) {
		Scanner sc=new Scanner(System.in);
		int n=sc.nextInt();
		int m=sc.nextInt();
		int l=1;
		long[][] m1=new long[n][m];
		long[][] m2=new long[m][l];
		long[][] ans=new long[n][l];
		for(int i=0; i<n; i++) {
			for(int j=0; j<m; j++) {
				m1[i][j]=sc.nextLong();
			}
		}
		for(int i=0; i<m; i++) {
			for(int j=0; j<l; j++) {
				m2[i][j]=sc.nextLong();
			}
		}
		for(int i=0; i<n; i++) {
			for(int j=0; j<l; j++) {
				long tmp=0;
				for(int k=0; k<m; k++) {
					tmp+=m1[i][k]*m2[k][j];
				}
				ans[i][j]=tmp;
			}
		}
		output(ans,n,l);
	} main {
		Scanner sc=new Scanner(System.in);
		int n=sc.nextInt();
		int m=sc.nextInt();
		int l=1;
		long[][] m1=new long[n][m];
		long[][] m2=new long[m][l];
		long[][] ans=new long[n][l];
		for(int i=0; i<n; i++) {
			for(int j=0; j<m; j++) {
				m1[i][j]=sc.nextLong();
			}
		}
		for(int i=0; i<m; i++) {
			for(int j=0; j<l; j++) {
				m2[i][j]=sc.nextLong();
			}
		}
		for(int i=0; i<n; i++) {
			for(int j=0; j<l; j++) {
				long tmp=0;
				for(int k=0; k<m; k++) {
					tmp+=m1[i][k]*m2[k][j];
				}
				ans[i][j]=tmp;
			}
		}
		output(ans,n,l);
	} 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=1; l 1 long[][] m1=new long[n][m]; m1 new long[n][m] n m long[][] m2=new long[m][l]; m2 new long[m][l] m l long[][] ans=new long[n][l]; ans new long[n][l] n l for(int i=0; i<n; i++) {
			for(int j=0; j<m; j++) {
				m1[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++) {
				m1[i][j]=sc.nextLong();
			}
		} {
			for(int j=0; j<m; j++) {
				m1[i][j]=sc.nextLong();
			}
		} for(int j=0; j<m; j++) {
				m1[i][j]=sc.nextLong();
			} int j=0; int j=0; j 0 j<m j m j++ j++ j {
				m1[i][j]=sc.nextLong();
			} {
				m1[i][j]=sc.nextLong();
			} m1[i][j]=sc.nextLong() m1[i][j] m1[i] m1 i j sc.nextLong() sc.nextLong sc for(int i=0; i<m; i++) {
			for(int j=0; j<l; j++) {
				m2[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++) {
				m2[i][j]=sc.nextLong();
			}
		} {
			for(int j=0; j<l; j++) {
				m2[i][j]=sc.nextLong();
			}
		} for(int j=0; j<l; j++) {
				m2[i][j]=sc.nextLong();
			} int j=0; int j=0; j 0 j<l j l j++ j++ j {
				m2[i][j]=sc.nextLong();
			} {
				m2[i][j]=sc.nextLong();
			} m2[i][j]=sc.nextLong() m2[i][j] m2[i] m2 i j sc.nextLong() sc.nextLong sc for(int i=0; i<n; i++) {
			for(int j=0; j<l; j++) {
				long tmp=0;
				for(int k=0; k<m; k++) {
					tmp+=m1[i][k]*m2[k][j];
				}
				ans[i][j]=tmp;
			}
		} int i=0; int i=0; i 0 i<n i n i++ i++ i {
			for(int j=0; j<l; j++) {
				long tmp=0;
				for(int k=0; k<m; k++) {
					tmp+=m1[i][k]*m2[k][j];
				}
				ans[i][j]=tmp;
			}
		} {
			for(int j=0; j<l; j++) {
				long tmp=0;
				for(int k=0; k<m; k++) {
					tmp+=m1[i][k]*m2[k][j];
				}
				ans[i][j]=tmp;
			}
		} for(int j=0; j<l; j++) {
				long tmp=0;
				for(int k=0; k<m; k++) {
					tmp+=m1[i][k]*m2[k][j];
				}
				ans[i][j]=tmp;
			} int j=0; int j=0; j 0 j<l j l j++ j++ j {
				long tmp=0;
				for(int k=0; k<m; k++) {
					tmp+=m1[i][k]*m2[k][j];
				}
				ans[i][j]=tmp;
			} {
				long tmp=0;
				for(int k=0; k<m; k++) {
					tmp+=m1[i][k]*m2[k][j];
				}
				ans[i][j]=tmp;
			} long tmp=0; tmp 0 for(int k=0; k<m; k++) {
					tmp+=m1[i][k]*m2[k][j];
				} int k=0; int k=0; k 0 k<m k m k++ k++ k {
					tmp+=m1[i][k]*m2[k][j];
				} {
					tmp+=m1[i][k]*m2[k][j];
				} tmp+=m1[i][k]*m2[k][j] tmp m1[i][k]*m2[k][j] m1[i][k] m1[i] m1 i k m2[k][j] m2[k] m2 k j ans[i][j]=tmp ans[i][j] ans[i] ans i j tmp output(ans,n,l) output ans n l String[] args args public static void output(long[][] a,int h,int w) {
		for(int i=0; i<h; i++) {
			for(int j=0; j<w-1; j++) {
				System.out.print(a[i][j]+" ");
			}
			if(w>0) {
				System.out.println(a[i][w-1]);;
			}
		}
	} output {
		for(int i=0; i<h; i++) {
			for(int j=0; j<w-1; j++) {
				System.out.print(a[i][j]+" ");
			}
			if(w>0) {
				System.out.println(a[i][w-1]);;
			}
		}
	} for(int i=0; i<h; i++) {
			for(int j=0; j<w-1; j++) {
				System.out.print(a[i][j]+" ");
			}
			if(w>0) {
				System.out.println(a[i][w-1]);;
			}
		} int i=0; int i=0; i 0 i<h i h i++ i++ i {
			for(int j=0; j<w-1; j++) {
				System.out.print(a[i][j]+" ");
			}
			if(w>0) {
				System.out.println(a[i][w-1]);;
			}
		} {
			for(int j=0; j<w-1; j++) {
				System.out.print(a[i][j]+" ");
			}
			if(w>0) {
				System.out.println(a[i][w-1]);;
			}
		} for(int j=0; j<w-1; j++) {
				System.out.print(a[i][j]+" ");
			} int j=0; int j=0; j 0 j<w-1 j w-1 w 1 j++ j++ j {
				System.out.print(a[i][j]+" ");
			} {
				System.out.print(a[i][j]+" ");
			} System.out.print(a[i][j]+" ") System.out.print System.out System System.out a[i][j]+" " a[i][j] a[i] a i j " " if(w>0) {
				System.out.println(a[i][w-1]);;
			} w>0 w 0 {
				System.out.println(a[i][w-1]);;
			} System.out.println(a[i][w-1]) System.out.println System.out System System.out a[i][w-1] a[i] a i w-1 w 1 long[][] a a int h h int w w
import java.util.Scanner;

class Main{
	public static void main(String[] args) {
		Scanner sc=new Scanner(System.in);
		int n=sc.nextInt();
		int m=sc.nextInt();
		int l=1;
		long[][] m1=new long[n][m];
		long[][] m2=new long[m][l];
		long[][] ans=new long[n][l];
		for(int i=0; i<n; i++) {
			for(int j=0; j<m; j++) {
				m1[i][j]=sc.nextLong();
			}
		}
		for(int i=0; i<m; i++) {
			for(int j=0; j<l; j++) {
				m2[i][j]=sc.nextLong();
			}
		}
		for(int i=0; i<n; i++) {
			for(int j=0; j<l; j++) {
				long tmp=0;
				for(int k=0; k<m; k++) {
					tmp+=m1[i][k]*m2[k][j];
				}
				ans[i][j]=tmp;
			}
		}
		output(ans,n,l);
	}
	public static void output(long[][] a,int h,int w) {
		for(int i=0; i<h; i++) {
			for(int j=0; j<w-1; j++) {
				System.out.print(a[i][j]+" ");
			}
			if(w>0) {
				System.out.println(a[i][w-1]);;
			}
		}
	}
}
