import java.io.*;
import java.util.*;
 
class Main {
 
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine());
        int n = Integer.parseInt(st.nextToken());
        int m = Integer.parseInt(st.nextToken());
        int l = Integer.parseInt(st.nextToken());
        long[][] matrix1 = new long[n][m];
        long[][] matrix2 = new long[m][l];
        for (int i = 0; i < n; i++) {
            st = new StringTokenizer(br.readLine());
            for (int j = 0; j < m; j++) {
                matrix1[i][j] = Long.parseLong(st.nextToken());
            }
        }
        for (int i = 0; i < m; i++) {
            st=new StringTokenizer(br.readLine());
            for(int j=0;j<l;j++){
                matrix2[i][j]=Long.parseLong(st.nextToken());
            }
        }
        long[][] sum = dot(matrix1, matrix2, n, m,l);
        for (int i = 0; i < n; i++) {
            for(int j=0;j<l;j++){
                if(j!=l-1){ System.out.print(sum[i][j]+" "); }
                else System.out.print(sum[i][j]);
            }System.out.println();
        }
    }
 
    static long[][] dot(long[][] matrix1, long[][] matrix2, int n, int m,int l) {
        long[][] sum = new long[n][l];
        for(int i=0;i<n;i++){ Arrays.fill(sum[i], 0); }
        for (int i = 0; i < n; i++) {
            for (int j = 0; j < l; j++) {
                for(int k=0;k<m;k++){
                    sum[i][j]+=(matrix1[i][k]*matrix2[k][j]);
                }
            }
        }
        return sum;
    }
}
  import java.io.*; io.* java import java.util.*; util.* java class Main {
 
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine());
        int n = Integer.parseInt(st.nextToken());
        int m = Integer.parseInt(st.nextToken());
        int l = Integer.parseInt(st.nextToken());
        long[][] matrix1 = new long[n][m];
        long[][] matrix2 = new long[m][l];
        for (int i = 0; i < n; i++) {
            st = new StringTokenizer(br.readLine());
            for (int j = 0; j < m; j++) {
                matrix1[i][j] = Long.parseLong(st.nextToken());
            }
        }
        for (int i = 0; i < m; i++) {
            st=new StringTokenizer(br.readLine());
            for(int j=0;j<l;j++){
                matrix2[i][j]=Long.parseLong(st.nextToken());
            }
        }
        long[][] sum = dot(matrix1, matrix2, n, m,l);
        for (int i = 0; i < n; i++) {
            for(int j=0;j<l;j++){
                if(j!=l-1){ System.out.print(sum[i][j]+" "); }
                else System.out.print(sum[i][j]);
            }System.out.println();
        }
    }
 
    static long[][] dot(long[][] matrix1, long[][] matrix2, int n, int m,int l) {
        long[][] sum = new long[n][l];
        for(int i=0;i<n;i++){ Arrays.fill(sum[i], 0); }
        for (int i = 0; i < n; i++) {
            for (int j = 0; j < l; j++) {
                for(int k=0;k<m;k++){
                    sum[i][j]+=(matrix1[i][k]*matrix2[k][j]);
                }
            }
        }
        return sum;
    }
} Main public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine());
        int n = Integer.parseInt(st.nextToken());
        int m = Integer.parseInt(st.nextToken());
        int l = Integer.parseInt(st.nextToken());
        long[][] matrix1 = new long[n][m];
        long[][] matrix2 = new long[m][l];
        for (int i = 0; i < n; i++) {
            st = new StringTokenizer(br.readLine());
            for (int j = 0; j < m; j++) {
                matrix1[i][j] = Long.parseLong(st.nextToken());
            }
        }
        for (int i = 0; i < m; i++) {
            st=new StringTokenizer(br.readLine());
            for(int j=0;j<l;j++){
                matrix2[i][j]=Long.parseLong(st.nextToken());
            }
        }
        long[][] sum = dot(matrix1, matrix2, n, m,l);
        for (int i = 0; i < n; i++) {
            for(int j=0;j<l;j++){
                if(j!=l-1){ System.out.print(sum[i][j]+" "); }
                else System.out.print(sum[i][j]);
            }System.out.println();
        }
    } main {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine());
        int n = Integer.parseInt(st.nextToken());
        int m = Integer.parseInt(st.nextToken());
        int l = Integer.parseInt(st.nextToken());
        long[][] matrix1 = new long[n][m];
        long[][] matrix2 = new long[m][l];
        for (int i = 0; i < n; i++) {
            st = new StringTokenizer(br.readLine());
            for (int j = 0; j < m; j++) {
                matrix1[i][j] = Long.parseLong(st.nextToken());
            }
        }
        for (int i = 0; i < m; i++) {
            st=new StringTokenizer(br.readLine());
            for(int j=0;j<l;j++){
                matrix2[i][j]=Long.parseLong(st.nextToken());
            }
        }
        long[][] sum = dot(matrix1, matrix2, n, m,l);
        for (int i = 0; i < n; i++) {
            for(int j=0;j<l;j++){
                if(j!=l-1){ System.out.print(sum[i][j]+" "); }
                else System.out.print(sum[i][j]);
            }System.out.println();
        }
    } BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); br new BufferedReader(new InputStreamReader(System.in)) StringTokenizer st = new StringTokenizer(br.readLine()); st new StringTokenizer(br.readLine()) int n = Integer.parseInt(st.nextToken()); n Integer.parseInt(st.nextToken()) Integer.parseInt Integer st.nextToken() st.nextToken st int m = Integer.parseInt(st.nextToken()); m Integer.parseInt(st.nextToken()) Integer.parseInt Integer st.nextToken() st.nextToken st int l = Integer.parseInt(st.nextToken()); l Integer.parseInt(st.nextToken()) Integer.parseInt Integer st.nextToken() st.nextToken st long[][] matrix1 = new long[n][m]; matrix1 new long[n][m] n m long[][] matrix2 = new long[m][l]; matrix2 new long[m][l] m l for (int i = 0; i < n; i++) {
            st = new StringTokenizer(br.readLine());
            for (int j = 0; j < m; j++) {
                matrix1[i][j] = Long.parseLong(st.nextToken());
            }
        } int i = 0; int i = 0; i 0 i < n i n i++ i++ i {
            st = new StringTokenizer(br.readLine());
            for (int j = 0; j < m; j++) {
                matrix1[i][j] = Long.parseLong(st.nextToken());
            }
        } {
            st = new StringTokenizer(br.readLine());
            for (int j = 0; j < m; j++) {
                matrix1[i][j] = Long.parseLong(st.nextToken());
            }
        } st = new StringTokenizer(br.readLine()) st new StringTokenizer(br.readLine()) for (int j = 0; j < m; j++) {
                matrix1[i][j] = Long.parseLong(st.nextToken());
            } int j = 0; int j = 0; j 0 j < m j m j++ j++ j {
                matrix1[i][j] = Long.parseLong(st.nextToken());
            } {
                matrix1[i][j] = Long.parseLong(st.nextToken());
            } matrix1[i][j] = Long.parseLong(st.nextToken()) matrix1[i][j] matrix1[i] matrix1 i j Long.parseLong(st.nextToken()) Long.parseLong Long st.nextToken() st.nextToken st for (int i = 0; i < m; i++) {
            st=new StringTokenizer(br.readLine());
            for(int j=0;j<l;j++){
                matrix2[i][j]=Long.parseLong(st.nextToken());
            }
        } int i = 0; int i = 0; i 0 i < m i m i++ i++ i {
            st=new StringTokenizer(br.readLine());
            for(int j=0;j<l;j++){
                matrix2[i][j]=Long.parseLong(st.nextToken());
            }
        } {
            st=new StringTokenizer(br.readLine());
            for(int j=0;j<l;j++){
                matrix2[i][j]=Long.parseLong(st.nextToken());
            }
        } st=new StringTokenizer(br.readLine()) st new StringTokenizer(br.readLine()) for(int j=0;j<l;j++){
                matrix2[i][j]=Long.parseLong(st.nextToken());
            } int j=0; int j=0; j 0 j<l j l j++ j++ j {
                matrix2[i][j]=Long.parseLong(st.nextToken());
            } {
                matrix2[i][j]=Long.parseLong(st.nextToken());
            } matrix2[i][j]=Long.parseLong(st.nextToken()) matrix2[i][j] matrix2[i] matrix2 i j Long.parseLong(st.nextToken()) Long.parseLong Long st.nextToken() st.nextToken st long[][] sum = dot(matrix1, matrix2, n, m,l); sum dot(matrix1, matrix2, n, m,l) dot matrix1 matrix2 n m l for (int i = 0; i < n; i++) {
            for(int j=0;j<l;j++){
                if(j!=l-1){ System.out.print(sum[i][j]+" "); }
                else System.out.print(sum[i][j]);
            }System.out.println();
        } int i = 0; int i = 0; i 0 i < n i n i++ i++ i {
            for(int j=0;j<l;j++){
                if(j!=l-1){ System.out.print(sum[i][j]+" "); }
                else System.out.print(sum[i][j]);
            }System.out.println();
        } {
            for(int j=0;j<l;j++){
                if(j!=l-1){ System.out.print(sum[i][j]+" "); }
                else System.out.print(sum[i][j]);
            }System.out.println();
        } for(int j=0;j<l;j++){
                if(j!=l-1){ System.out.print(sum[i][j]+" "); }
                else System.out.print(sum[i][j]);
            } int j=0; int j=0; j 0 j<l j l j++ j++ j {
                if(j!=l-1){ System.out.print(sum[i][j]+" "); }
                else System.out.print(sum[i][j]);
            } {
                if(j!=l-1){ System.out.print(sum[i][j]+" "); }
                else System.out.print(sum[i][j]);
            } if(j!=l-1){ System.out.print(sum[i][j]+" "); }
                else System.out.print(sum[i][j]); j!=l-1 j l-1 l 1 { System.out.print(sum[i][j]+" "); } System.out.print(sum[i][j]+" ") System.out.print System.out System System.out sum[i][j]+" " sum[i][j] sum[i] sum i j " " System.out.print(sum[i][j]) System.out.print System.out System System.out sum[i][j] sum[i] sum i j System.out.println() System.out.println System.out System System.out String[] args args static long[][] dot(long[][] matrix1, long[][] matrix2, int n, int m,int l) {
        long[][] sum = new long[n][l];
        for(int i=0;i<n;i++){ Arrays.fill(sum[i], 0); }
        for (int i = 0; i < n; i++) {
            for (int j = 0; j < l; j++) {
                for(int k=0;k<m;k++){
                    sum[i][j]+=(matrix1[i][k]*matrix2[k][j]);
                }
            }
        }
        return sum;
    } dot {
        long[][] sum = new long[n][l];
        for(int i=0;i<n;i++){ Arrays.fill(sum[i], 0); }
        for (int i = 0; i < n; i++) {
            for (int j = 0; j < l; j++) {
                for(int k=0;k<m;k++){
                    sum[i][j]+=(matrix1[i][k]*matrix2[k][j]);
                }
            }
        }
        return sum;
    } long[][] sum = new long[n][l]; sum new long[n][l] n l for(int i=0;i<n;i++){ Arrays.fill(sum[i], 0); } int i=0; int i=0; i 0 i<n i n i++ i++ i { Arrays.fill(sum[i], 0); } { Arrays.fill(sum[i], 0); } Arrays.fill(sum[i], 0) Arrays.fill Arrays sum[i] sum i 0 for (int i = 0; i < n; i++) {
            for (int j = 0; j < l; j++) {
                for(int k=0;k<m;k++){
                    sum[i][j]+=(matrix1[i][k]*matrix2[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++){
                    sum[i][j]+=(matrix1[i][k]*matrix2[k][j]);
                }
            }
        } {
            for (int j = 0; j < l; j++) {
                for(int k=0;k<m;k++){
                    sum[i][j]+=(matrix1[i][k]*matrix2[k][j]);
                }
            }
        } for (int j = 0; j < l; j++) {
                for(int k=0;k<m;k++){
                    sum[i][j]+=(matrix1[i][k]*matrix2[k][j]);
                }
            } int j = 0; int j = 0; j 0 j < l j l j++ j++ j {
                for(int k=0;k<m;k++){
                    sum[i][j]+=(matrix1[i][k]*matrix2[k][j]);
                }
            } {
                for(int k=0;k<m;k++){
                    sum[i][j]+=(matrix1[i][k]*matrix2[k][j]);
                }
            } for(int k=0;k<m;k++){
                    sum[i][j]+=(matrix1[i][k]*matrix2[k][j]);
                } int k=0; int k=0; k 0 k<m k m k++ k++ k {
                    sum[i][j]+=(matrix1[i][k]*matrix2[k][j]);
                } {
                    sum[i][j]+=(matrix1[i][k]*matrix2[k][j]);
                } sum[i][j]+=(matrix1[i][k]*matrix2[k][j]) sum[i][j] sum[i] sum i j (matrix1[i][k]*matrix2[k][j]) matrix1[i][k] matrix1[i] matrix1 i k matrix2[k][j] matrix2[k] matrix2 k j return sum; sum long[][] matrix1 matrix1 long[][] matrix2 matrix2 int n n int m m int l l
import java.io.*;
import java.util.*;
 
class Main {
 
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        StringTokenizer st = new StringTokenizer(br.readLine());
        int n = Integer.parseInt(st.nextToken());
        int m = Integer.parseInt(st.nextToken());
        int l = Integer.parseInt(st.nextToken());
        long[][] matrix1 = new long[n][m];
        long[][] matrix2 = new long[m][l];
        for (int i = 0; i < n; i++) {
            st = new StringTokenizer(br.readLine());
            for (int j = 0; j < m; j++) {
                matrix1[i][j] = Long.parseLong(st.nextToken());
            }
        }
        for (int i = 0; i < m; i++) {
            st=new StringTokenizer(br.readLine());
            for(int j=0;j<l;j++){
                matrix2[i][j]=Long.parseLong(st.nextToken());
            }
        }
        long[][] sum = dot(matrix1, matrix2, n, m,l);
        for (int i = 0; i < n; i++) {
            for(int j=0;j<l;j++){
                if(j!=l-1){ System.out.print(sum[i][j]+" "); }
                else System.out.print(sum[i][j]);
            }System.out.println();
        }
    }
 
    static long[][] dot(long[][] matrix1, long[][] matrix2, int n, int m,int l) {
        long[][] sum = new long[n][l];
        for(int i=0;i<n;i++){ Arrays.fill(sum[i], 0); }
        for (int i = 0; i < n; i++) {
            for (int j = 0; j < l; j++) {
                for(int k=0;k<m;k++){
                    sum[i][j]+=(matrix1[i][k]*matrix2[k][j]);
                }
            }
        }
        return sum;
    }
}
 