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[] nums = br.readLine().split(" ");
        int n = Integer.parseInt(nums[0]);
        int m = Integer.parseInt(nums[1]);
        int l = Integer.parseInt(nums[2]);

        long[][] matrixA = new long[n][m];
        long[][] matrixB = new long[m][l];
        long[][] matrixC = new long[n][l];

        //input matrixA
        for(int i = 0; i < n; i++){
            String[] input = br.readLine().split(" ");
            for(int j = 0; j < m; j++){
                matrixA[i][j] = Long.valueOf(input[j]);
            }
        }

        //input matrixB
        for(int i = 0; i < m; i++){
            String[] input = br.readLine().split(" ");
            for(int j = 0; j < l; j++){
                matrixB[i][j] = Long.valueOf(input[j]);
            }
        }

        //input matrixC(matrixA * matrixB)
        for(int i = 0; i < n; i++){
            for(int j = 0; j < l; j++){
                for(int k = 0; k< m; k++){
                    matrixC[i][j] += matrixA[i][k] * matrixB[k][j];
                }
            }
        }

        //output matrixC
        StringBuilder sb = new StringBuilder();
        for(int i = 0; i < n; i++){
            for(int j = 0; j < l; j++){
                sb.append(matrixC[i][j]);
                if(j != l-1) sb.append(" ");
            }
            if(i != n-1) sb.append("\n");
        }
        System.out.println(sb);

    }
} 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[] nums = br.readLine().split(" ");
        int n = Integer.parseInt(nums[0]);
        int m = Integer.parseInt(nums[1]);
        int l = Integer.parseInt(nums[2]);

        long[][] matrixA = new long[n][m];
        long[][] matrixB = new long[m][l];
        long[][] matrixC = new long[n][l];

        //input matrixA
        for(int i = 0; i < n; i++){
            String[] input = br.readLine().split(" ");
            for(int j = 0; j < m; j++){
                matrixA[i][j] = Long.valueOf(input[j]);
            }
        }

        //input matrixB
        for(int i = 0; i < m; i++){
            String[] input = br.readLine().split(" ");
            for(int j = 0; j < l; j++){
                matrixB[i][j] = Long.valueOf(input[j]);
            }
        }

        //input matrixC(matrixA * matrixB)
        for(int i = 0; i < n; i++){
            for(int j = 0; j < l; j++){
                for(int k = 0; k< m; k++){
                    matrixC[i][j] += matrixA[i][k] * matrixB[k][j];
                }
            }
        }

        //output matrixC
        StringBuilder sb = new StringBuilder();
        for(int i = 0; i < n; i++){
            for(int j = 0; j < l; j++){
                sb.append(matrixC[i][j]);
                if(j != l-1) sb.append(" ");
            }
            if(i != n-1) sb.append("\n");
        }
        System.out.println(sb);

    }
} Main public static void main(String[] args) throws IOException{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        String[] nums = br.readLine().split(" ");
        int n = Integer.parseInt(nums[0]);
        int m = Integer.parseInt(nums[1]);
        int l = Integer.parseInt(nums[2]);

        long[][] matrixA = new long[n][m];
        long[][] matrixB = new long[m][l];
        long[][] matrixC = new long[n][l];

        //input matrixA
        for(int i = 0; i < n; i++){
            String[] input = br.readLine().split(" ");
            for(int j = 0; j < m; j++){
                matrixA[i][j] = Long.valueOf(input[j]);
            }
        }

        //input matrixB
        for(int i = 0; i < m; i++){
            String[] input = br.readLine().split(" ");
            for(int j = 0; j < l; j++){
                matrixB[i][j] = Long.valueOf(input[j]);
            }
        }

        //input matrixC(matrixA * matrixB)
        for(int i = 0; i < n; i++){
            for(int j = 0; j < l; j++){
                for(int k = 0; k< m; k++){
                    matrixC[i][j] += matrixA[i][k] * matrixB[k][j];
                }
            }
        }

        //output matrixC
        StringBuilder sb = new StringBuilder();
        for(int i = 0; i < n; i++){
            for(int j = 0; j < l; j++){
                sb.append(matrixC[i][j]);
                if(j != l-1) sb.append(" ");
            }
            if(i != n-1) sb.append("\n");
        }
        System.out.println(sb);

    } main {
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        String[] nums = br.readLine().split(" ");
        int n = Integer.parseInt(nums[0]);
        int m = Integer.parseInt(nums[1]);
        int l = Integer.parseInt(nums[2]);

        long[][] matrixA = new long[n][m];
        long[][] matrixB = new long[m][l];
        long[][] matrixC = new long[n][l];

        //input matrixA
        for(int i = 0; i < n; i++){
            String[] input = br.readLine().split(" ");
            for(int j = 0; j < m; j++){
                matrixA[i][j] = Long.valueOf(input[j]);
            }
        }

        //input matrixB
        for(int i = 0; i < m; i++){
            String[] input = br.readLine().split(" ");
            for(int j = 0; j < l; j++){
                matrixB[i][j] = Long.valueOf(input[j]);
            }
        }

        //input matrixC(matrixA * matrixB)
        for(int i = 0; i < n; i++){
            for(int j = 0; j < l; j++){
                for(int k = 0; k< m; k++){
                    matrixC[i][j] += matrixA[i][k] * matrixB[k][j];
                }
            }
        }

        //output matrixC
        StringBuilder sb = new StringBuilder();
        for(int i = 0; i < n; i++){
            for(int j = 0; j < l; j++){
                sb.append(matrixC[i][j]);
                if(j != l-1) sb.append(" ");
            }
            if(i != n-1) sb.append("\n");
        }
        System.out.println(sb);

    } BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); br new BufferedReader(new InputStreamReader(System.in)) String[] nums = br.readLine().split(" "); nums br.readLine().split(" ") br.readLine().split br.readLine() br.readLine br " " int n = Integer.parseInt(nums[0]); n Integer.parseInt(nums[0]) Integer.parseInt Integer nums[0] nums 0 int m = Integer.parseInt(nums[1]); m Integer.parseInt(nums[1]) Integer.parseInt Integer nums[1] nums 1 int l = Integer.parseInt(nums[2]); l Integer.parseInt(nums[2]) Integer.parseInt Integer nums[2] nums 2 long[][] matrixA = new long[n][m]; matrixA new long[n][m] n m long[][] matrixB = new long[m][l]; matrixB new long[m][l] m l long[][] matrixC = new long[n][l]; matrixC new long[n][l] n l for(int i = 0; i < n; i++){
            String[] input = br.readLine().split(" ");
            for(int j = 0; j < m; j++){
                matrixA[i][j] = Long.valueOf(input[j]);
            }
        } int i = 0; int i = 0; i 0 i < n i n i++ i++ i {
            String[] input = br.readLine().split(" ");
            for(int j = 0; j < m; j++){
                matrixA[i][j] = Long.valueOf(input[j]);
            }
        } {
            String[] input = br.readLine().split(" ");
            for(int j = 0; j < m; j++){
                matrixA[i][j] = Long.valueOf(input[j]);
            }
        } String[] input = br.readLine().split(" "); input br.readLine().split(" ") br.readLine().split br.readLine() br.readLine br " " for(int j = 0; j < m; j++){
                matrixA[i][j] = Long.valueOf(input[j]);
            } int j = 0; int j = 0; j 0 j < m j m j++ j++ j {
                matrixA[i][j] = Long.valueOf(input[j]);
            } {
                matrixA[i][j] = Long.valueOf(input[j]);
            } matrixA[i][j] = Long.valueOf(input[j]) matrixA[i][j] matrixA[i] matrixA i j Long.valueOf(input[j]) Long.valueOf Long input[j] input j for(int i = 0; i < m; i++){
            String[] input = br.readLine().split(" ");
            for(int j = 0; j < l; j++){
                matrixB[i][j] = Long.valueOf(input[j]);
            }
        } int i = 0; int i = 0; i 0 i < m i m i++ i++ i {
            String[] input = br.readLine().split(" ");
            for(int j = 0; j < l; j++){
                matrixB[i][j] = Long.valueOf(input[j]);
            }
        } {
            String[] input = br.readLine().split(" ");
            for(int j = 0; j < l; j++){
                matrixB[i][j] = Long.valueOf(input[j]);
            }
        } String[] input = br.readLine().split(" "); input br.readLine().split(" ") br.readLine().split br.readLine() br.readLine br " " for(int j = 0; j < l; j++){
                matrixB[i][j] = Long.valueOf(input[j]);
            } int j = 0; int j = 0; j 0 j < l j l j++ j++ j {
                matrixB[i][j] = Long.valueOf(input[j]);
            } {
                matrixB[i][j] = Long.valueOf(input[j]);
            } matrixB[i][j] = Long.valueOf(input[j]) matrixB[i][j] matrixB[i] matrixB i j Long.valueOf(input[j]) Long.valueOf Long input[j] input j for(int i = 0; i < n; i++){
            for(int j = 0; j < l; j++){
                for(int k = 0; k< m; k++){
                    matrixC[i][j] += matrixA[i][k] * matrixB[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++){
                    matrixC[i][j] += matrixA[i][k] * matrixB[k][j];
                }
            }
        } {
            for(int j = 0; j < l; j++){
                for(int k = 0; k< m; k++){
                    matrixC[i][j] += matrixA[i][k] * matrixB[k][j];
                }
            }
        } for(int j = 0; j < l; j++){
                for(int k = 0; k< m; k++){
                    matrixC[i][j] += matrixA[i][k] * matrixB[k][j];
                }
            } int j = 0; int j = 0; j 0 j < l j l j++ j++ j {
                for(int k = 0; k< m; k++){
                    matrixC[i][j] += matrixA[i][k] * matrixB[k][j];
                }
            } {
                for(int k = 0; k< m; k++){
                    matrixC[i][j] += matrixA[i][k] * matrixB[k][j];
                }
            } for(int k = 0; k< m; k++){
                    matrixC[i][j] += matrixA[i][k] * matrixB[k][j];
                } int k = 0; int k = 0; k 0 k< m k m k++ k++ k {
                    matrixC[i][j] += matrixA[i][k] * matrixB[k][j];
                } {
                    matrixC[i][j] += matrixA[i][k] * matrixB[k][j];
                } matrixC[i][j] += matrixA[i][k] * matrixB[k][j] matrixC[i][j] matrixC[i] matrixC i j matrixA[i][k] * matrixB[k][j] matrixA[i][k] matrixA[i] matrixA i k matrixB[k][j] matrixB[k] matrixB k j StringBuilder sb = new StringBuilder(); sb new StringBuilder() for(int i = 0; i < n; i++){
            for(int j = 0; j < l; j++){
                sb.append(matrixC[i][j]);
                if(j != l-1) sb.append(" ");
            }
            if(i != n-1) sb.append("\n");
        } int i = 0; int i = 0; i 0 i < n i n i++ i++ i {
            for(int j = 0; j < l; j++){
                sb.append(matrixC[i][j]);
                if(j != l-1) sb.append(" ");
            }
            if(i != n-1) sb.append("\n");
        } {
            for(int j = 0; j < l; j++){
                sb.append(matrixC[i][j]);
                if(j != l-1) sb.append(" ");
            }
            if(i != n-1) sb.append("\n");
        } for(int j = 0; j < l; j++){
                sb.append(matrixC[i][j]);
                if(j != l-1) sb.append(" ");
            } int j = 0; int j = 0; j 0 j < l j l j++ j++ j {
                sb.append(matrixC[i][j]);
                if(j != l-1) sb.append(" ");
            } {
                sb.append(matrixC[i][j]);
                if(j != l-1) sb.append(" ");
            } sb.append(matrixC[i][j]) sb.append sb matrixC[i][j] matrixC[i] matrixC i j if(j != l-1) sb.append(" "); j != l-1 j l-1 l 1 sb.append(" ") sb.append sb " " if(i != n-1) sb.append("\n"); i != n-1 i n-1 n 1 sb.append("\n") sb.append sb "\n" System.out.println(sb) System.out.println System.out System System.out sb String[] args args public class Main{
    public static void main(String[] args) throws IOException{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        String[] nums = br.readLine().split(" ");
        int n = Integer.parseInt(nums[0]);
        int m = Integer.parseInt(nums[1]);
        int l = Integer.parseInt(nums[2]);

        long[][] matrixA = new long[n][m];
        long[][] matrixB = new long[m][l];
        long[][] matrixC = new long[n][l];

        //input matrixA
        for(int i = 0; i < n; i++){
            String[] input = br.readLine().split(" ");
            for(int j = 0; j < m; j++){
                matrixA[i][j] = Long.valueOf(input[j]);
            }
        }

        //input matrixB
        for(int i = 0; i < m; i++){
            String[] input = br.readLine().split(" ");
            for(int j = 0; j < l; j++){
                matrixB[i][j] = Long.valueOf(input[j]);
            }
        }

        //input matrixC(matrixA * matrixB)
        for(int i = 0; i < n; i++){
            for(int j = 0; j < l; j++){
                for(int k = 0; k< m; k++){
                    matrixC[i][j] += matrixA[i][k] * matrixB[k][j];
                }
            }
        }

        //output matrixC
        StringBuilder sb = new StringBuilder();
        for(int i = 0; i < n; i++){
            for(int j = 0; j < l; j++){
                sb.append(matrixC[i][j]);
                if(j != l-1) sb.append(" ");
            }
            if(i != n-1) sb.append("\n");
        }
        System.out.println(sb);

    }
} public class Main{
    public static void main(String[] args) throws IOException{
        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

        String[] nums = br.readLine().split(" ");
        int n = Integer.parseInt(nums[0]);
        int m = Integer.parseInt(nums[1]);
        int l = Integer.parseInt(nums[2]);

        long[][] matrixA = new long[n][m];
        long[][] matrixB = new long[m][l];
        long[][] matrixC = new long[n][l];

        //input matrixA
        for(int i = 0; i < n; i++){
            String[] input = br.readLine().split(" ");
            for(int j = 0; j < m; j++){
                matrixA[i][j] = Long.valueOf(input[j]);
            }
        }

        //input matrixB
        for(int i = 0; i < m; i++){
            String[] input = br.readLine().split(" ");
            for(int j = 0; j < l; j++){
                matrixB[i][j] = Long.valueOf(input[j]);
            }
        }

        //input matrixC(matrixA * matrixB)
        for(int i = 0; i < n; i++){
            for(int j = 0; j < l; j++){
                for(int k = 0; k< m; k++){
                    matrixC[i][j] += matrixA[i][k] * matrixB[k][j];
                }
            }
        }

        //output matrixC
        StringBuilder sb = new StringBuilder();
        for(int i = 0; i < n; i++){
            for(int j = 0; j < l; j++){
                sb.append(matrixC[i][j]);
                if(j != l-1) sb.append(" ");
            }
            if(i != n-1) sb.append("\n");
        }
        System.out.println(sb);

    }
} 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[] nums = br.readLine().split(" ");
        int n = Integer.parseInt(nums[0]);
        int m = Integer.parseInt(nums[1]);
        int l = Integer.parseInt(nums[2]);

        long[][] matrixA = new long[n][m];
        long[][] matrixB = new long[m][l];
        long[][] matrixC = new long[n][l];

        //input matrixA
        for(int i = 0; i < n; i++){
            String[] input = br.readLine().split(" ");
            for(int j = 0; j < m; j++){
                matrixA[i][j] = Long.valueOf(input[j]);
            }
        }

        //input matrixB
        for(int i = 0; i < m; i++){
            String[] input = br.readLine().split(" ");
            for(int j = 0; j < l; j++){
                matrixB[i][j] = Long.valueOf(input[j]);
            }
        }

        //input matrixC(matrixA * matrixB)
        for(int i = 0; i < n; i++){
            for(int j = 0; j < l; j++){
                for(int k = 0; k< m; k++){
                    matrixC[i][j] += matrixA[i][k] * matrixB[k][j];
                }
            }
        }

        //output matrixC
        StringBuilder sb = new StringBuilder();
        for(int i = 0; i < n; i++){
            for(int j = 0; j < l; j++){
                sb.append(matrixC[i][j]);
                if(j != l-1) sb.append(" ");
            }
            if(i != n-1) sb.append("\n");
        }
        System.out.println(sb);

    }
}