import java.io.*;

class Main {
	public static void main(String[] args) throws Exception {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String[] f=br.readLine().split(" ");
        int n=Integer.parseInt(f[0]);
        int m=Integer.parseInt(f[1]);
        int l=Integer.parseInt(f[2]);
        int[] A=new int[n*m];
        int[] B=new int[m*l];
        int h=0;
        for(int i=0;i<n;i++){
        	String[] s=br.readLine().split(" ");
        	for(int j=0;j<m;j++){
        		A[h]=Integer.parseInt(s[j]);
        		h++;
        	}
        }
        for(int j=0;j<m;j++){
        	int bc=j;
        	String[] t=br.readLine().split(" ");
        	for(int k=0;k<l;k++){
        		B[bc]=Integer.parseInt(t[k]);
        		bc+=m;
        	}
        }
    	int ac=0,bc=0,al=0,c=0;
    	long v=0;
    	StringBuilder sb=new StringBuilder();
        while(c<n){
        	v+=A[ac]*B[bc];
        	if(ac<(c*m+(m-1))){
        		ac++;
        	}else{
        		sb.append(v);
        		v=0;
        		if(al<l-1){
        			sb.append(" ");
        			ac-=m-1;
        			al++;
        		}else{
        			sb.append("\n");
        			ac++;
        			al=0;
        			c++;
        		}
        	}
        	if(bc<m*l-1){
        		bc++;
        	}else{
        		bc=0;
        	}
        }
        System.out.print(sb);
	}
} import java.io.*; io.* java class Main {
	public static void main(String[] args) throws Exception {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String[] f=br.readLine().split(" ");
        int n=Integer.parseInt(f[0]);
        int m=Integer.parseInt(f[1]);
        int l=Integer.parseInt(f[2]);
        int[] A=new int[n*m];
        int[] B=new int[m*l];
        int h=0;
        for(int i=0;i<n;i++){
        	String[] s=br.readLine().split(" ");
        	for(int j=0;j<m;j++){
        		A[h]=Integer.parseInt(s[j]);
        		h++;
        	}
        }
        for(int j=0;j<m;j++){
        	int bc=j;
        	String[] t=br.readLine().split(" ");
        	for(int k=0;k<l;k++){
        		B[bc]=Integer.parseInt(t[k]);
        		bc+=m;
        	}
        }
    	int ac=0,bc=0,al=0,c=0;
    	long v=0;
    	StringBuilder sb=new StringBuilder();
        while(c<n){
        	v+=A[ac]*B[bc];
        	if(ac<(c*m+(m-1))){
        		ac++;
        	}else{
        		sb.append(v);
        		v=0;
        		if(al<l-1){
        			sb.append(" ");
        			ac-=m-1;
        			al++;
        		}else{
        			sb.append("\n");
        			ac++;
        			al=0;
        			c++;
        		}
        	}
        	if(bc<m*l-1){
        		bc++;
        	}else{
        		bc=0;
        	}
        }
        System.out.print(sb);
	}
} Main public static void main(String[] args) throws Exception {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String[] f=br.readLine().split(" ");
        int n=Integer.parseInt(f[0]);
        int m=Integer.parseInt(f[1]);
        int l=Integer.parseInt(f[2]);
        int[] A=new int[n*m];
        int[] B=new int[m*l];
        int h=0;
        for(int i=0;i<n;i++){
        	String[] s=br.readLine().split(" ");
        	for(int j=0;j<m;j++){
        		A[h]=Integer.parseInt(s[j]);
        		h++;
        	}
        }
        for(int j=0;j<m;j++){
        	int bc=j;
        	String[] t=br.readLine().split(" ");
        	for(int k=0;k<l;k++){
        		B[bc]=Integer.parseInt(t[k]);
        		bc+=m;
        	}
        }
    	int ac=0,bc=0,al=0,c=0;
    	long v=0;
    	StringBuilder sb=new StringBuilder();
        while(c<n){
        	v+=A[ac]*B[bc];
        	if(ac<(c*m+(m-1))){
        		ac++;
        	}else{
        		sb.append(v);
        		v=0;
        		if(al<l-1){
        			sb.append(" ");
        			ac-=m-1;
        			al++;
        		}else{
        			sb.append("\n");
        			ac++;
        			al=0;
        			c++;
        		}
        	}
        	if(bc<m*l-1){
        		bc++;
        	}else{
        		bc=0;
        	}
        }
        System.out.print(sb);
	} main {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String[] f=br.readLine().split(" ");
        int n=Integer.parseInt(f[0]);
        int m=Integer.parseInt(f[1]);
        int l=Integer.parseInt(f[2]);
        int[] A=new int[n*m];
        int[] B=new int[m*l];
        int h=0;
        for(int i=0;i<n;i++){
        	String[] s=br.readLine().split(" ");
        	for(int j=0;j<m;j++){
        		A[h]=Integer.parseInt(s[j]);
        		h++;
        	}
        }
        for(int j=0;j<m;j++){
        	int bc=j;
        	String[] t=br.readLine().split(" ");
        	for(int k=0;k<l;k++){
        		B[bc]=Integer.parseInt(t[k]);
        		bc+=m;
        	}
        }
    	int ac=0,bc=0,al=0,c=0;
    	long v=0;
    	StringBuilder sb=new StringBuilder();
        while(c<n){
        	v+=A[ac]*B[bc];
        	if(ac<(c*m+(m-1))){
        		ac++;
        	}else{
        		sb.append(v);
        		v=0;
        		if(al<l-1){
        			sb.append(" ");
        			ac-=m-1;
        			al++;
        		}else{
        			sb.append("\n");
        			ac++;
        			al=0;
        			c++;
        		}
        	}
        	if(bc<m*l-1){
        		bc++;
        	}else{
        		bc=0;
        	}
        }
        System.out.print(sb);
	} BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); br new BufferedReader(new InputStreamReader(System.in)) String[] f=br.readLine().split(" "); f br.readLine().split(" ") br.readLine().split br.readLine() br.readLine br " " int n=Integer.parseInt(f[0]); n Integer.parseInt(f[0]) Integer.parseInt Integer f[0] f 0 int m=Integer.parseInt(f[1]); m Integer.parseInt(f[1]) Integer.parseInt Integer f[1] f 1 int l=Integer.parseInt(f[2]); l Integer.parseInt(f[2]) Integer.parseInt Integer f[2] f 2 int[] A=new int[n*m]; A new int[n*m] n*m n m int[] B=new int[m*l]; B new int[m*l] m*l m l int h=0; h 0 for(int i=0;i<n;i++){
        	String[] s=br.readLine().split(" ");
        	for(int j=0;j<m;j++){
        		A[h]=Integer.parseInt(s[j]);
        		h++;
        	}
        } int i=0; int i=0; i 0 i<n i n i++ i++ i {
        	String[] s=br.readLine().split(" ");
        	for(int j=0;j<m;j++){
        		A[h]=Integer.parseInt(s[j]);
        		h++;
        	}
        } {
        	String[] s=br.readLine().split(" ");
        	for(int j=0;j<m;j++){
        		A[h]=Integer.parseInt(s[j]);
        		h++;
        	}
        } String[] s=br.readLine().split(" "); s br.readLine().split(" ") br.readLine().split br.readLine() br.readLine br " " for(int j=0;j<m;j++){
        		A[h]=Integer.parseInt(s[j]);
        		h++;
        	} int j=0; int j=0; j 0 j<m j m j++ j++ j {
        		A[h]=Integer.parseInt(s[j]);
        		h++;
        	} {
        		A[h]=Integer.parseInt(s[j]);
        		h++;
        	} A[h]=Integer.parseInt(s[j]) A[h] A h Integer.parseInt(s[j]) Integer.parseInt Integer s[j] s j h++ h for(int j=0;j<m;j++){
        	int bc=j;
        	String[] t=br.readLine().split(" ");
        	for(int k=0;k<l;k++){
        		B[bc]=Integer.parseInt(t[k]);
        		bc+=m;
        	}
        } int j=0; int j=0; j 0 j<m j m j++ j++ j {
        	int bc=j;
        	String[] t=br.readLine().split(" ");
        	for(int k=0;k<l;k++){
        		B[bc]=Integer.parseInt(t[k]);
        		bc+=m;
        	}
        } {
        	int bc=j;
        	String[] t=br.readLine().split(" ");
        	for(int k=0;k<l;k++){
        		B[bc]=Integer.parseInt(t[k]);
        		bc+=m;
        	}
        } int bc=j; bc j String[] t=br.readLine().split(" "); t br.readLine().split(" ") br.readLine().split br.readLine() br.readLine br " " for(int k=0;k<l;k++){
        		B[bc]=Integer.parseInt(t[k]);
        		bc+=m;
        	} int k=0; int k=0; k 0 k<l k l k++ k++ k {
        		B[bc]=Integer.parseInt(t[k]);
        		bc+=m;
        	} {
        		B[bc]=Integer.parseInt(t[k]);
        		bc+=m;
        	} B[bc]=Integer.parseInt(t[k]) B[bc] B bc Integer.parseInt(t[k]) Integer.parseInt Integer t[k] t k bc+=m bc m int ac=0 ac 0 bc=0 bc 0 al=0 al 0 c=0; c 0 long v=0; v 0 StringBuilder sb=new StringBuilder(); sb new StringBuilder() while(c<n){
        	v+=A[ac]*B[bc];
        	if(ac<(c*m+(m-1))){
        		ac++;
        	}else{
        		sb.append(v);
        		v=0;
        		if(al<l-1){
        			sb.append(" ");
        			ac-=m-1;
        			al++;
        		}else{
        			sb.append("\n");
        			ac++;
        			al=0;
        			c++;
        		}
        	}
        	if(bc<m*l-1){
        		bc++;
        	}else{
        		bc=0;
        	}
        } c<n c n {
        	v+=A[ac]*B[bc];
        	if(ac<(c*m+(m-1))){
        		ac++;
        	}else{
        		sb.append(v);
        		v=0;
        		if(al<l-1){
        			sb.append(" ");
        			ac-=m-1;
        			al++;
        		}else{
        			sb.append("\n");
        			ac++;
        			al=0;
        			c++;
        		}
        	}
        	if(bc<m*l-1){
        		bc++;
        	}else{
        		bc=0;
        	}
        } v+=A[ac]*B[bc] v A[ac]*B[bc] A[ac] A ac B[bc] B bc if(ac<(c*m+(m-1))){
        		ac++;
        	}else{
        		sb.append(v);
        		v=0;
        		if(al<l-1){
        			sb.append(" ");
        			ac-=m-1;
        			al++;
        		}else{
        			sb.append("\n");
        			ac++;
        			al=0;
        			c++;
        		}
        	} ac<(c*m+(m-1)) ac (c*m+(m-1)) c*m c m (m-1) m 1 {
        		ac++;
        	} ac++ ac {
        		sb.append(v);
        		v=0;
        		if(al<l-1){
        			sb.append(" ");
        			ac-=m-1;
        			al++;
        		}else{
        			sb.append("\n");
        			ac++;
        			al=0;
        			c++;
        		}
        	} sb.append(v) sb.append sb v v=0 v 0 if(al<l-1){
        			sb.append(" ");
        			ac-=m-1;
        			al++;
        		}else{
        			sb.append("\n");
        			ac++;
        			al=0;
        			c++;
        		} al<l-1 al l-1 l 1 {
        			sb.append(" ");
        			ac-=m-1;
        			al++;
        		} sb.append(" ") sb.append sb " " ac-=m-1 ac m-1 m 1 al++ al {
        			sb.append("\n");
        			ac++;
        			al=0;
        			c++;
        		} sb.append("\n") sb.append sb "\n" ac++ ac al=0 al 0 c++ c if(bc<m*l-1){
        		bc++;
        	}else{
        		bc=0;
        	} bc<m*l-1 bc m*l-1 m*l m l 1 {
        		bc++;
        	} bc++ bc {
        		bc=0;
        	} bc=0 bc 0 System.out.print(sb) System.out.print System.out System System.out sb String[] args args
import java.io.*;

class Main {
	public static void main(String[] args) throws Exception {
		BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String[] f=br.readLine().split(" ");
        int n=Integer.parseInt(f[0]);
        int m=Integer.parseInt(f[1]);
        int l=Integer.parseInt(f[2]);
        int[] A=new int[n*m];
        int[] B=new int[m*l];
        int h=0;
        for(int i=0;i<n;i++){
        	String[] s=br.readLine().split(" ");
        	for(int j=0;j<m;j++){
        		A[h]=Integer.parseInt(s[j]);
        		h++;
        	}
        }
        for(int j=0;j<m;j++){
        	int bc=j;
        	String[] t=br.readLine().split(" ");
        	for(int k=0;k<l;k++){
        		B[bc]=Integer.parseInt(t[k]);
        		bc+=m;
        	}
        }
    	int ac=0,bc=0,al=0,c=0;
    	long v=0;
    	StringBuilder sb=new StringBuilder();
        while(c<n){
        	v+=A[ac]*B[bc];
        	if(ac<(c*m+(m-1))){
        		ac++;
        	}else{
        		sb.append(v);
        		v=0;
        		if(al<l-1){
        			sb.append(" ");
        			ac-=m-1;
        			al++;
        		}else{
        			sb.append("\n");
        			ac++;
        			al=0;
        			c++;
        		}
        	}
        	if(bc<m*l-1){
        		bc++;
        	}else{
        		bc=0;
        	}
        }
        System.out.print(sb);
	}
}