import java.io.IOException;
import java.io.BufferedReader;
import java.io.InputStreamReader;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String[] line = br.readLine().split(" ");
        final int n = Integer.parseInt(line[0]);
        final int m = Integer.parseInt(line[1]);
        final int l = Integer.parseInt(line[2]);
        long[][] A = new long[n][m];
        long[][] B = new long[m][l];
        long[][] C = new long[n][l];
        
        for (int i=0; i<n; i++){
            String[] tmp= br.readLine().split(" ");
            for (int j=0; j<m; j++){
                long num = Long.parseLong(tmp[j]);
                A[i][j] = num;
            }
        }
        for (int i=0; i<m; i++){
            String[] tmp= br.readLine().split(" ");
            for (int j=0; j<l; j++){
                long num = Long.parseLong(tmp[j]);
                B[i][j] = num;
            }
        }
        for (int i=0; i<n; i++){
            for (int j=0; j<m; j++){
                for (int k=0; k<l; k++){
                    C[i][k] += A[i][j]*B[j][k]; 
                }
            }
        }
        StringBuilder sb = new StringBuilder();
        for (int i=0; i<n; i++){
            for (int j=0; j<l-1; j++){
                sb.append(C[i][j]+" ");
            }
            sb.append(C[i][l-1]+"\n");
        }
        System.out.print(sb.toString());
    }
} import java.io.IOException; IOException java.io import java.io.BufferedReader; BufferedReader java.io import java.io.InputStreamReader; InputStreamReader java.io public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String[] line = br.readLine().split(" ");
        final int n = Integer.parseInt(line[0]);
        final int m = Integer.parseInt(line[1]);
        final int l = Integer.parseInt(line[2]);
        long[][] A = new long[n][m];
        long[][] B = new long[m][l];
        long[][] C = new long[n][l];
        
        for (int i=0; i<n; i++){
            String[] tmp= br.readLine().split(" ");
            for (int j=0; j<m; j++){
                long num = Long.parseLong(tmp[j]);
                A[i][j] = num;
            }
        }
        for (int i=0; i<m; i++){
            String[] tmp= br.readLine().split(" ");
            for (int j=0; j<l; j++){
                long num = Long.parseLong(tmp[j]);
                B[i][j] = num;
            }
        }
        for (int i=0; i<n; i++){
            for (int j=0; j<m; j++){
                for (int k=0; k<l; k++){
                    C[i][k] += A[i][j]*B[j][k]; 
                }
            }
        }
        StringBuilder sb = new StringBuilder();
        for (int i=0; i<n; i++){
            for (int j=0; j<l-1; j++){
                sb.append(C[i][j]+" ");
            }
            sb.append(C[i][l-1]+"\n");
        }
        System.out.print(sb.toString());
    }
} Main public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String[] line = br.readLine().split(" ");
        final int n = Integer.parseInt(line[0]);
        final int m = Integer.parseInt(line[1]);
        final int l = Integer.parseInt(line[2]);
        long[][] A = new long[n][m];
        long[][] B = new long[m][l];
        long[][] C = new long[n][l];
        
        for (int i=0; i<n; i++){
            String[] tmp= br.readLine().split(" ");
            for (int j=0; j<m; j++){
                long num = Long.parseLong(tmp[j]);
                A[i][j] = num;
            }
        }
        for (int i=0; i<m; i++){
            String[] tmp= br.readLine().split(" ");
            for (int j=0; j<l; j++){
                long num = Long.parseLong(tmp[j]);
                B[i][j] = num;
            }
        }
        for (int i=0; i<n; i++){
            for (int j=0; j<m; j++){
                for (int k=0; k<l; k++){
                    C[i][k] += A[i][j]*B[j][k]; 
                }
            }
        }
        StringBuilder sb = new StringBuilder();
        for (int i=0; i<n; i++){
            for (int j=0; j<l-1; j++){
                sb.append(C[i][j]+" ");
            }
            sb.append(C[i][l-1]+"\n");
        }
        System.out.print(sb.toString());
    } main {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String[] line = br.readLine().split(" ");
        final int n = Integer.parseInt(line[0]);
        final int m = Integer.parseInt(line[1]);
        final int l = Integer.parseInt(line[2]);
        long[][] A = new long[n][m];
        long[][] B = new long[m][l];
        long[][] C = new long[n][l];
        
        for (int i=0; i<n; i++){
            String[] tmp= br.readLine().split(" ");
            for (int j=0; j<m; j++){
                long num = Long.parseLong(tmp[j]);
                A[i][j] = num;
            }
        }
        for (int i=0; i<m; i++){
            String[] tmp= br.readLine().split(" ");
            for (int j=0; j<l; j++){
                long num = Long.parseLong(tmp[j]);
                B[i][j] = num;
            }
        }
        for (int i=0; i<n; i++){
            for (int j=0; j<m; j++){
                for (int k=0; k<l; k++){
                    C[i][k] += A[i][j]*B[j][k]; 
                }
            }
        }
        StringBuilder sb = new StringBuilder();
        for (int i=0; i<n; i++){
            for (int j=0; j<l-1; j++){
                sb.append(C[i][j]+" ");
            }
            sb.append(C[i][l-1]+"\n");
        }
        System.out.print(sb.toString());
    } BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); br new BufferedReader(new InputStreamReader(System.in)) String[] line = br.readLine().split(" "); line br.readLine().split(" ") br.readLine().split br.readLine() br.readLine br " " final int n = Integer.parseInt(line[0]); n Integer.parseInt(line[0]) Integer.parseInt Integer line[0] line 0 final int m = Integer.parseInt(line[1]); m Integer.parseInt(line[1]) Integer.parseInt Integer line[1] line 1 final int l = Integer.parseInt(line[2]); l Integer.parseInt(line[2]) Integer.parseInt Integer line[2] line 2 long[][] A = new long[n][m]; A new long[n][m] n m long[][] B = new long[m][l]; B new long[m][l] m l long[][] C = new long[n][l]; C new long[n][l] n l for (int i=0; i<n; i++){
            String[] tmp= br.readLine().split(" ");
            for (int j=0; j<m; j++){
                long num = Long.parseLong(tmp[j]);
                A[i][j] = num;
            }
        } int i=0; int i=0; i 0 i<n i n i++ i++ i {
            String[] tmp= br.readLine().split(" ");
            for (int j=0; j<m; j++){
                long num = Long.parseLong(tmp[j]);
                A[i][j] = num;
            }
        } {
            String[] tmp= br.readLine().split(" ");
            for (int j=0; j<m; j++){
                long num = Long.parseLong(tmp[j]);
                A[i][j] = num;
            }
        } String[] tmp= br.readLine().split(" "); tmp br.readLine().split(" ") br.readLine().split br.readLine() br.readLine br " " for (int j=0; j<m; j++){
                long num = Long.parseLong(tmp[j]);
                A[i][j] = num;
            } int j=0; int j=0; j 0 j<m j m j++ j++ j {
                long num = Long.parseLong(tmp[j]);
                A[i][j] = num;
            } {
                long num = Long.parseLong(tmp[j]);
                A[i][j] = num;
            } long num = Long.parseLong(tmp[j]); num Long.parseLong(tmp[j]) Long.parseLong Long tmp[j] tmp j A[i][j] = num A[i][j] A[i] A i j num for (int i=0; i<m; i++){
            String[] tmp= br.readLine().split(" ");
            for (int j=0; j<l; j++){
                long num = Long.parseLong(tmp[j]);
                B[i][j] = num;
            }
        } int i=0; int i=0; i 0 i<m i m i++ i++ i {
            String[] tmp= br.readLine().split(" ");
            for (int j=0; j<l; j++){
                long num = Long.parseLong(tmp[j]);
                B[i][j] = num;
            }
        } {
            String[] tmp= br.readLine().split(" ");
            for (int j=0; j<l; j++){
                long num = Long.parseLong(tmp[j]);
                B[i][j] = num;
            }
        } String[] tmp= br.readLine().split(" "); tmp br.readLine().split(" ") br.readLine().split br.readLine() br.readLine br " " for (int j=0; j<l; j++){
                long num = Long.parseLong(tmp[j]);
                B[i][j] = num;
            } int j=0; int j=0; j 0 j<l j l j++ j++ j {
                long num = Long.parseLong(tmp[j]);
                B[i][j] = num;
            } {
                long num = Long.parseLong(tmp[j]);
                B[i][j] = num;
            } long num = Long.parseLong(tmp[j]); num Long.parseLong(tmp[j]) Long.parseLong Long tmp[j] tmp j B[i][j] = num B[i][j] B[i] B i j num for (int i=0; i<n; i++){
            for (int j=0; j<m; j++){
                for (int k=0; k<l; k++){
                    C[i][k] += A[i][j]*B[j][k]; 
                }
            }
        } int i=0; int i=0; i 0 i<n i n i++ i++ i {
            for (int j=0; j<m; j++){
                for (int k=0; k<l; k++){
                    C[i][k] += A[i][j]*B[j][k]; 
                }
            }
        } {
            for (int j=0; j<m; j++){
                for (int k=0; k<l; k++){
                    C[i][k] += A[i][j]*B[j][k]; 
                }
            }
        } for (int j=0; j<m; j++){
                for (int k=0; k<l; k++){
                    C[i][k] += A[i][j]*B[j][k]; 
                }
            } int j=0; int j=0; j 0 j<m j m j++ j++ j {
                for (int k=0; k<l; k++){
                    C[i][k] += A[i][j]*B[j][k]; 
                }
            } {
                for (int k=0; k<l; k++){
                    C[i][k] += A[i][j]*B[j][k]; 
                }
            } for (int k=0; k<l; k++){
                    C[i][k] += A[i][j]*B[j][k]; 
                } int k=0; int k=0; k 0 k<l k l k++ k++ k {
                    C[i][k] += A[i][j]*B[j][k]; 
                } {
                    C[i][k] += A[i][j]*B[j][k]; 
                } C[i][k] += A[i][j]*B[j][k] C[i][k] C[i] C i k A[i][j]*B[j][k] A[i][j] A[i] A i j B[j][k] B[j] B j k StringBuilder sb = new StringBuilder(); sb new StringBuilder() for (int i=0; i<n; i++){
            for (int j=0; j<l-1; j++){
                sb.append(C[i][j]+" ");
            }
            sb.append(C[i][l-1]+"\n");
        } int i=0; int i=0; i 0 i<n i n i++ i++ i {
            for (int j=0; j<l-1; j++){
                sb.append(C[i][j]+" ");
            }
            sb.append(C[i][l-1]+"\n");
        } {
            for (int j=0; j<l-1; j++){
                sb.append(C[i][j]+" ");
            }
            sb.append(C[i][l-1]+"\n");
        } for (int j=0; j<l-1; j++){
                sb.append(C[i][j]+" ");
            } int j=0; int j=0; j 0 j<l-1 j l-1 l 1 j++ j++ j {
                sb.append(C[i][j]+" ");
            } {
                sb.append(C[i][j]+" ");
            } sb.append(C[i][j]+" ") sb.append sb C[i][j]+" " C[i][j] C[i] C i j " " sb.append(C[i][l-1]+"\n") sb.append sb C[i][l-1]+"\n" C[i][l-1] C[i] C i l-1 l 1 "\n" System.out.print(sb.toString()) System.out.print System.out System System.out sb.toString() sb.toString sb String[] args args public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String[] line = br.readLine().split(" ");
        final int n = Integer.parseInt(line[0]);
        final int m = Integer.parseInt(line[1]);
        final int l = Integer.parseInt(line[2]);
        long[][] A = new long[n][m];
        long[][] B = new long[m][l];
        long[][] C = new long[n][l];
        
        for (int i=0; i<n; i++){
            String[] tmp= br.readLine().split(" ");
            for (int j=0; j<m; j++){
                long num = Long.parseLong(tmp[j]);
                A[i][j] = num;
            }
        }
        for (int i=0; i<m; i++){
            String[] tmp= br.readLine().split(" ");
            for (int j=0; j<l; j++){
                long num = Long.parseLong(tmp[j]);
                B[i][j] = num;
            }
        }
        for (int i=0; i<n; i++){
            for (int j=0; j<m; j++){
                for (int k=0; k<l; k++){
                    C[i][k] += A[i][j]*B[j][k]; 
                }
            }
        }
        StringBuilder sb = new StringBuilder();
        for (int i=0; i<n; i++){
            for (int j=0; j<l-1; j++){
                sb.append(C[i][j]+" ");
            }
            sb.append(C[i][l-1]+"\n");
        }
        System.out.print(sb.toString());
    }
} public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String[] line = br.readLine().split(" ");
        final int n = Integer.parseInt(line[0]);
        final int m = Integer.parseInt(line[1]);
        final int l = Integer.parseInt(line[2]);
        long[][] A = new long[n][m];
        long[][] B = new long[m][l];
        long[][] C = new long[n][l];
        
        for (int i=0; i<n; i++){
            String[] tmp= br.readLine().split(" ");
            for (int j=0; j<m; j++){
                long num = Long.parseLong(tmp[j]);
                A[i][j] = num;
            }
        }
        for (int i=0; i<m; i++){
            String[] tmp= br.readLine().split(" ");
            for (int j=0; j<l; j++){
                long num = Long.parseLong(tmp[j]);
                B[i][j] = num;
            }
        }
        for (int i=0; i<n; i++){
            for (int j=0; j<m; j++){
                for (int k=0; k<l; k++){
                    C[i][k] += A[i][j]*B[j][k]; 
                }
            }
        }
        StringBuilder sb = new StringBuilder();
        for (int i=0; i<n; i++){
            for (int j=0; j<l-1; j++){
                sb.append(C[i][j]+" ");
            }
            sb.append(C[i][l-1]+"\n");
        }
        System.out.print(sb.toString());
    }
} Main
import java.io.IOException;
import java.io.BufferedReader;
import java.io.InputStreamReader;

public class Main {
    public static void main(String[] args) throws IOException {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String[] line = br.readLine().split(" ");
        final int n = Integer.parseInt(line[0]);
        final int m = Integer.parseInt(line[1]);
        final int l = Integer.parseInt(line[2]);
        long[][] A = new long[n][m];
        long[][] B = new long[m][l];
        long[][] C = new long[n][l];
        
        for (int i=0; i<n; i++){
            String[] tmp= br.readLine().split(" ");
            for (int j=0; j<m; j++){
                long num = Long.parseLong(tmp[j]);
                A[i][j] = num;
            }
        }
        for (int i=0; i<m; i++){
            String[] tmp= br.readLine().split(" ");
            for (int j=0; j<l; j++){
                long num = Long.parseLong(tmp[j]);
                B[i][j] = num;
            }
        }
        for (int i=0; i<n; i++){
            for (int j=0; j<m; j++){
                for (int k=0; k<l; k++){
                    C[i][k] += A[i][j]*B[j][k]; 
                }
            }
        }
        StringBuilder sb = new StringBuilder();
        for (int i=0; i<n; i++){
            for (int j=0; j<l-1; j++){
                sb.append(C[i][j]+" ");
            }
            sb.append(C[i][l-1]+"\n");
        }
        System.out.print(sb.toString());
    }
}