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

/**
 *
 * @author k16069kk
 */
public class Main {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) throws IOException {
        int n = 0;
        int m = 0;
        int l = 0;

        int matrix_A[][] = new int[100][100];
        int matrix_B[][] = new int[100][100];

        int a = 0;
        int b = 0;

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String line;
        while ((line = br.readLine()) != null) {
            java.util.StringTokenizer st = new StringTokenizer(line, " ");
            while (st.hasMoreTokens()) {
                if (n == 0 && m == 0 && l == 0) {
                    n = Integer.parseInt(st.nextToken());
                    m = Integer.parseInt(st.nextToken());
                    l = Integer.parseInt(st.nextToken());
                } else {
                    if (a != n) {
                        for (int i = 0; i < m; i++) {
                            matrix_A[a][i] = Integer.parseInt(st.nextToken());
                        }
                        a++;
                    } else {
                        for (int i = 0; i < l; i++) {
                            matrix_B[b][i] = Integer.parseInt(st.nextToken());
                        }
                        b++;
                    }
                }
            }
            if (a == n && b == m) {
                break;
            }
        }

        long matrix_C[][] = new long[n][l];

        for (int i = 0; i < n; i++) {
            for (int j = 0; j < l; j++) {
                for (int k = 0; k < m; k++) {
                    matrix_C[i][j] += (matrix_A[i][k] * matrix_B[k][j]);
                }
            }
        }

        for (int i = 0; i < matrix_C.length; i++) {
            for (int j = 0; j < matrix_C[i].length; j++) {
                System.out.print(matrix_C[i][j]);
                if(!(j == l-1))System.out.print(" ");
            }
            System.out.println("");
        }

    }

}
 import java.io.BufferedReader; BufferedReader java.io import java.io.IOException; IOException java.io import java.io.InputStreamReader; InputStreamReader java.io import java.util.StringTokenizer; StringTokenizer java.util public class Main {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) throws IOException {
        int n = 0;
        int m = 0;
        int l = 0;

        int matrix_A[][] = new int[100][100];
        int matrix_B[][] = new int[100][100];

        int a = 0;
        int b = 0;

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String line;
        while ((line = br.readLine()) != null) {
            java.util.StringTokenizer st = new StringTokenizer(line, " ");
            while (st.hasMoreTokens()) {
                if (n == 0 && m == 0 && l == 0) {
                    n = Integer.parseInt(st.nextToken());
                    m = Integer.parseInt(st.nextToken());
                    l = Integer.parseInt(st.nextToken());
                } else {
                    if (a != n) {
                        for (int i = 0; i < m; i++) {
                            matrix_A[a][i] = Integer.parseInt(st.nextToken());
                        }
                        a++;
                    } else {
                        for (int i = 0; i < l; i++) {
                            matrix_B[b][i] = Integer.parseInt(st.nextToken());
                        }
                        b++;
                    }
                }
            }
            if (a == n && b == m) {
                break;
            }
        }

        long matrix_C[][] = new long[n][l];

        for (int i = 0; i < n; i++) {
            for (int j = 0; j < l; j++) {
                for (int k = 0; k < m; k++) {
                    matrix_C[i][j] += (matrix_A[i][k] * matrix_B[k][j]);
                }
            }
        }

        for (int i = 0; i < matrix_C.length; i++) {
            for (int j = 0; j < matrix_C[i].length; j++) {
                System.out.print(matrix_C[i][j]);
                if(!(j == l-1))System.out.print(" ");
            }
            System.out.println("");
        }

    }

} Main /**
     * @param args the command line arguments
     */
    public static void main(String[] args) throws IOException {
        int n = 0;
        int m = 0;
        int l = 0;

        int matrix_A[][] = new int[100][100];
        int matrix_B[][] = new int[100][100];

        int a = 0;
        int b = 0;

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String line;
        while ((line = br.readLine()) != null) {
            java.util.StringTokenizer st = new StringTokenizer(line, " ");
            while (st.hasMoreTokens()) {
                if (n == 0 && m == 0 && l == 0) {
                    n = Integer.parseInt(st.nextToken());
                    m = Integer.parseInt(st.nextToken());
                    l = Integer.parseInt(st.nextToken());
                } else {
                    if (a != n) {
                        for (int i = 0; i < m; i++) {
                            matrix_A[a][i] = Integer.parseInt(st.nextToken());
                        }
                        a++;
                    } else {
                        for (int i = 0; i < l; i++) {
                            matrix_B[b][i] = Integer.parseInt(st.nextToken());
                        }
                        b++;
                    }
                }
            }
            if (a == n && b == m) {
                break;
            }
        }

        long matrix_C[][] = new long[n][l];

        for (int i = 0; i < n; i++) {
            for (int j = 0; j < l; j++) {
                for (int k = 0; k < m; k++) {
                    matrix_C[i][j] += (matrix_A[i][k] * matrix_B[k][j]);
                }
            }
        }

        for (int i = 0; i < matrix_C.length; i++) {
            for (int j = 0; j < matrix_C[i].length; j++) {
                System.out.print(matrix_C[i][j]);
                if(!(j == l-1))System.out.print(" ");
            }
            System.out.println("");
        }

    } main {
        int n = 0;
        int m = 0;
        int l = 0;

        int matrix_A[][] = new int[100][100];
        int matrix_B[][] = new int[100][100];

        int a = 0;
        int b = 0;

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String line;
        while ((line = br.readLine()) != null) {
            java.util.StringTokenizer st = new StringTokenizer(line, " ");
            while (st.hasMoreTokens()) {
                if (n == 0 && m == 0 && l == 0) {
                    n = Integer.parseInt(st.nextToken());
                    m = Integer.parseInt(st.nextToken());
                    l = Integer.parseInt(st.nextToken());
                } else {
                    if (a != n) {
                        for (int i = 0; i < m; i++) {
                            matrix_A[a][i] = Integer.parseInt(st.nextToken());
                        }
                        a++;
                    } else {
                        for (int i = 0; i < l; i++) {
                            matrix_B[b][i] = Integer.parseInt(st.nextToken());
                        }
                        b++;
                    }
                }
            }
            if (a == n && b == m) {
                break;
            }
        }

        long matrix_C[][] = new long[n][l];

        for (int i = 0; i < n; i++) {
            for (int j = 0; j < l; j++) {
                for (int k = 0; k < m; k++) {
                    matrix_C[i][j] += (matrix_A[i][k] * matrix_B[k][j]);
                }
            }
        }

        for (int i = 0; i < matrix_C.length; i++) {
            for (int j = 0; j < matrix_C[i].length; j++) {
                System.out.print(matrix_C[i][j]);
                if(!(j == l-1))System.out.print(" ");
            }
            System.out.println("");
        }

    } int n = 0; n 0 int m = 0; m 0 int l = 0; l 0 int matrix_A[][] = new int[100][100]; matrix_A new int[100][100] 100 100 int matrix_B[][] = new int[100][100]; matrix_B new int[100][100] 100 100 int a = 0; a 0 int b = 0; b 0 BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); br new BufferedReader(new InputStreamReader(System.in)) String line; line while ((line = br.readLine()) != null) {
            java.util.StringTokenizer st = new StringTokenizer(line, " ");
            while (st.hasMoreTokens()) {
                if (n == 0 && m == 0 && l == 0) {
                    n = Integer.parseInt(st.nextToken());
                    m = Integer.parseInt(st.nextToken());
                    l = Integer.parseInt(st.nextToken());
                } else {
                    if (a != n) {
                        for (int i = 0; i < m; i++) {
                            matrix_A[a][i] = Integer.parseInt(st.nextToken());
                        }
                        a++;
                    } else {
                        for (int i = 0; i < l; i++) {
                            matrix_B[b][i] = Integer.parseInt(st.nextToken());
                        }
                        b++;
                    }
                }
            }
            if (a == n && b == m) {
                break;
            }
        } (line = br.readLine()) != null (line = br.readLine()) line br.readLine() br.readLine br null {
            java.util.StringTokenizer st = new StringTokenizer(line, " ");
            while (st.hasMoreTokens()) {
                if (n == 0 && m == 0 && l == 0) {
                    n = Integer.parseInt(st.nextToken());
                    m = Integer.parseInt(st.nextToken());
                    l = Integer.parseInt(st.nextToken());
                } else {
                    if (a != n) {
                        for (int i = 0; i < m; i++) {
                            matrix_A[a][i] = Integer.parseInt(st.nextToken());
                        }
                        a++;
                    } else {
                        for (int i = 0; i < l; i++) {
                            matrix_B[b][i] = Integer.parseInt(st.nextToken());
                        }
                        b++;
                    }
                }
            }
            if (a == n && b == m) {
                break;
            }
        } java.util.StringTokenizer st = new StringTokenizer(line, " "); st new StringTokenizer(line, " ") while (st.hasMoreTokens()) {
                if (n == 0 && m == 0 && l == 0) {
                    n = Integer.parseInt(st.nextToken());
                    m = Integer.parseInt(st.nextToken());
                    l = Integer.parseInt(st.nextToken());
                } else {
                    if (a != n) {
                        for (int i = 0; i < m; i++) {
                            matrix_A[a][i] = Integer.parseInt(st.nextToken());
                        }
                        a++;
                    } else {
                        for (int i = 0; i < l; i++) {
                            matrix_B[b][i] = Integer.parseInt(st.nextToken());
                        }
                        b++;
                    }
                }
            } st.hasMoreTokens() st.hasMoreTokens st {
                if (n == 0 && m == 0 && l == 0) {
                    n = Integer.parseInt(st.nextToken());
                    m = Integer.parseInt(st.nextToken());
                    l = Integer.parseInt(st.nextToken());
                } else {
                    if (a != n) {
                        for (int i = 0; i < m; i++) {
                            matrix_A[a][i] = Integer.parseInt(st.nextToken());
                        }
                        a++;
                    } else {
                        for (int i = 0; i < l; i++) {
                            matrix_B[b][i] = Integer.parseInt(st.nextToken());
                        }
                        b++;
                    }
                }
            } if (n == 0 && m == 0 && l == 0) {
                    n = Integer.parseInt(st.nextToken());
                    m = Integer.parseInt(st.nextToken());
                    l = Integer.parseInt(st.nextToken());
                } else {
                    if (a != n) {
                        for (int i = 0; i < m; i++) {
                            matrix_A[a][i] = Integer.parseInt(st.nextToken());
                        }
                        a++;
                    } else {
                        for (int i = 0; i < l; i++) {
                            matrix_B[b][i] = Integer.parseInt(st.nextToken());
                        }
                        b++;
                    }
                } n == 0 && m == 0 && l == 0 n == 0 && m == 0 && l == 0 n == 0 n 0 m == 0 m 0 l == 0 l 0 {
                    n = Integer.parseInt(st.nextToken());
                    m = Integer.parseInt(st.nextToken());
                    l = Integer.parseInt(st.nextToken());
                } n = Integer.parseInt(st.nextToken()) n Integer.parseInt(st.nextToken()) Integer.parseInt Integer st.nextToken() st.nextToken st m = Integer.parseInt(st.nextToken()) m Integer.parseInt(st.nextToken()) Integer.parseInt Integer st.nextToken() st.nextToken st l = Integer.parseInt(st.nextToken()) l Integer.parseInt(st.nextToken()) Integer.parseInt Integer st.nextToken() st.nextToken st {
                    if (a != n) {
                        for (int i = 0; i < m; i++) {
                            matrix_A[a][i] = Integer.parseInt(st.nextToken());
                        }
                        a++;
                    } else {
                        for (int i = 0; i < l; i++) {
                            matrix_B[b][i] = Integer.parseInt(st.nextToken());
                        }
                        b++;
                    }
                } if (a != n) {
                        for (int i = 0; i < m; i++) {
                            matrix_A[a][i] = Integer.parseInt(st.nextToken());
                        }
                        a++;
                    } else {
                        for (int i = 0; i < l; i++) {
                            matrix_B[b][i] = Integer.parseInt(st.nextToken());
                        }
                        b++;
                    } a != n a n {
                        for (int i = 0; i < m; i++) {
                            matrix_A[a][i] = Integer.parseInt(st.nextToken());
                        }
                        a++;
                    } for (int i = 0; i < m; i++) {
                            matrix_A[a][i] = Integer.parseInt(st.nextToken());
                        } int i = 0; int i = 0; i 0 i < m i m i++ i++ i {
                            matrix_A[a][i] = Integer.parseInt(st.nextToken());
                        } {
                            matrix_A[a][i] = Integer.parseInt(st.nextToken());
                        } matrix_A[a][i] = Integer.parseInt(st.nextToken()) matrix_A[a][i] matrix_A[a] matrix_A a i Integer.parseInt(st.nextToken()) Integer.parseInt Integer st.nextToken() st.nextToken st a++ a {
                        for (int i = 0; i < l; i++) {
                            matrix_B[b][i] = Integer.parseInt(st.nextToken());
                        }
                        b++;
                    } for (int i = 0; i < l; i++) {
                            matrix_B[b][i] = Integer.parseInt(st.nextToken());
                        } int i = 0; int i = 0; i 0 i < l i l i++ i++ i {
                            matrix_B[b][i] = Integer.parseInt(st.nextToken());
                        } {
                            matrix_B[b][i] = Integer.parseInt(st.nextToken());
                        } matrix_B[b][i] = Integer.parseInt(st.nextToken()) matrix_B[b][i] matrix_B[b] matrix_B b i Integer.parseInt(st.nextToken()) Integer.parseInt Integer st.nextToken() st.nextToken st b++ b if (a == n && b == m) {
                break;
            } a == n && b == m a == n a n b == m b m {
                break;
            } break; long matrix_C[][] = new long[n][l]; matrix_C new long[n][l] n l for (int i = 0; i < n; i++) {
            for (int j = 0; j < l; j++) {
                for (int k = 0; k < m; k++) {
                    matrix_C[i][j] += (matrix_A[i][k] * matrix_B[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++) {
                    matrix_C[i][j] += (matrix_A[i][k] * matrix_B[k][j]);
                }
            }
        } {
            for (int j = 0; j < l; j++) {
                for (int k = 0; k < m; k++) {
                    matrix_C[i][j] += (matrix_A[i][k] * matrix_B[k][j]);
                }
            }
        } for (int j = 0; j < l; j++) {
                for (int k = 0; k < m; k++) {
                    matrix_C[i][j] += (matrix_A[i][k] * matrix_B[k][j]);
                }
            } int j = 0; int j = 0; j 0 j < l j l j++ j++ j {
                for (int k = 0; k < m; k++) {
                    matrix_C[i][j] += (matrix_A[i][k] * matrix_B[k][j]);
                }
            } {
                for (int k = 0; k < m; k++) {
                    matrix_C[i][j] += (matrix_A[i][k] * matrix_B[k][j]);
                }
            } for (int k = 0; k < m; k++) {
                    matrix_C[i][j] += (matrix_A[i][k] * matrix_B[k][j]);
                } int k = 0; int k = 0; k 0 k < m k m k++ k++ k {
                    matrix_C[i][j] += (matrix_A[i][k] * matrix_B[k][j]);
                } {
                    matrix_C[i][j] += (matrix_A[i][k] * matrix_B[k][j]);
                } matrix_C[i][j] += (matrix_A[i][k] * matrix_B[k][j]) matrix_C[i][j] matrix_C[i] matrix_C i j (matrix_A[i][k] * matrix_B[k][j]) matrix_A[i][k] matrix_A[i] matrix_A i k matrix_B[k][j] matrix_B[k] matrix_B k j for (int i = 0; i < matrix_C.length; i++) {
            for (int j = 0; j < matrix_C[i].length; j++) {
                System.out.print(matrix_C[i][j]);
                if(!(j == l-1))System.out.print(" ");
            }
            System.out.println("");
        } int i = 0; int i = 0; i 0 i < matrix_C.length i matrix_C.length matrix_C matrix_C.length i++ i++ i {
            for (int j = 0; j < matrix_C[i].length; j++) {
                System.out.print(matrix_C[i][j]);
                if(!(j == l-1))System.out.print(" ");
            }
            System.out.println("");
        } {
            for (int j = 0; j < matrix_C[i].length; j++) {
                System.out.print(matrix_C[i][j]);
                if(!(j == l-1))System.out.print(" ");
            }
            System.out.println("");
        } for (int j = 0; j < matrix_C[i].length; j++) {
                System.out.print(matrix_C[i][j]);
                if(!(j == l-1))System.out.print(" ");
            } int j = 0; int j = 0; j 0 j < matrix_C[i].length j matrix_C[i].length matrix_C[i] matrix_C i matrix_C[i].length j++ j++ j {
                System.out.print(matrix_C[i][j]);
                if(!(j == l-1))System.out.print(" ");
            } {
                System.out.print(matrix_C[i][j]);
                if(!(j == l-1))System.out.print(" ");
            } System.out.print(matrix_C[i][j]) System.out.print System.out System System.out matrix_C[i][j] matrix_C[i] matrix_C i j if(!(j == l-1))System.out.print(" "); !(j == l-1) (j == l-1) j l-1 l 1 System.out.print(" ") System.out.print System.out System System.out " " System.out.println("") System.out.println System.out System System.out "" String[] args args public class Main {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) throws IOException {
        int n = 0;
        int m = 0;
        int l = 0;

        int matrix_A[][] = new int[100][100];
        int matrix_B[][] = new int[100][100];

        int a = 0;
        int b = 0;

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String line;
        while ((line = br.readLine()) != null) {
            java.util.StringTokenizer st = new StringTokenizer(line, " ");
            while (st.hasMoreTokens()) {
                if (n == 0 && m == 0 && l == 0) {
                    n = Integer.parseInt(st.nextToken());
                    m = Integer.parseInt(st.nextToken());
                    l = Integer.parseInt(st.nextToken());
                } else {
                    if (a != n) {
                        for (int i = 0; i < m; i++) {
                            matrix_A[a][i] = Integer.parseInt(st.nextToken());
                        }
                        a++;
                    } else {
                        for (int i = 0; i < l; i++) {
                            matrix_B[b][i] = Integer.parseInt(st.nextToken());
                        }
                        b++;
                    }
                }
            }
            if (a == n && b == m) {
                break;
            }
        }

        long matrix_C[][] = new long[n][l];

        for (int i = 0; i < n; i++) {
            for (int j = 0; j < l; j++) {
                for (int k = 0; k < m; k++) {
                    matrix_C[i][j] += (matrix_A[i][k] * matrix_B[k][j]);
                }
            }
        }

        for (int i = 0; i < matrix_C.length; i++) {
            for (int j = 0; j < matrix_C[i].length; j++) {
                System.out.print(matrix_C[i][j]);
                if(!(j == l-1))System.out.print(" ");
            }
            System.out.println("");
        }

    }

} public class Main {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) throws IOException {
        int n = 0;
        int m = 0;
        int l = 0;

        int matrix_A[][] = new int[100][100];
        int matrix_B[][] = new int[100][100];

        int a = 0;
        int b = 0;

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String line;
        while ((line = br.readLine()) != null) {
            java.util.StringTokenizer st = new StringTokenizer(line, " ");
            while (st.hasMoreTokens()) {
                if (n == 0 && m == 0 && l == 0) {
                    n = Integer.parseInt(st.nextToken());
                    m = Integer.parseInt(st.nextToken());
                    l = Integer.parseInt(st.nextToken());
                } else {
                    if (a != n) {
                        for (int i = 0; i < m; i++) {
                            matrix_A[a][i] = Integer.parseInt(st.nextToken());
                        }
                        a++;
                    } else {
                        for (int i = 0; i < l; i++) {
                            matrix_B[b][i] = Integer.parseInt(st.nextToken());
                        }
                        b++;
                    }
                }
            }
            if (a == n && b == m) {
                break;
            }
        }

        long matrix_C[][] = new long[n][l];

        for (int i = 0; i < n; i++) {
            for (int j = 0; j < l; j++) {
                for (int k = 0; k < m; k++) {
                    matrix_C[i][j] += (matrix_A[i][k] * matrix_B[k][j]);
                }
            }
        }

        for (int i = 0; i < matrix_C.length; i++) {
            for (int j = 0; j < matrix_C[i].length; j++) {
                System.out.print(matrix_C[i][j]);
                if(!(j == l-1))System.out.print(" ");
            }
            System.out.println("");
        }

    }

} Main

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

/**
 *
 * @author k16069kk
 */
public class Main {

    /**
     * @param args the command line arguments
     */
    public static void main(String[] args) throws IOException {
        int n = 0;
        int m = 0;
        int l = 0;

        int matrix_A[][] = new int[100][100];
        int matrix_B[][] = new int[100][100];

        int a = 0;
        int b = 0;

        BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
        String line;
        while ((line = br.readLine()) != null) {
            java.util.StringTokenizer st = new StringTokenizer(line, " ");
            while (st.hasMoreTokens()) {
                if (n == 0 && m == 0 && l == 0) {
                    n = Integer.parseInt(st.nextToken());
                    m = Integer.parseInt(st.nextToken());
                    l = Integer.parseInt(st.nextToken());
                } else {
                    if (a != n) {
                        for (int i = 0; i < m; i++) {
                            matrix_A[a][i] = Integer.parseInt(st.nextToken());
                        }
                        a++;
                    } else {
                        for (int i = 0; i < l; i++) {
                            matrix_B[b][i] = Integer.parseInt(st.nextToken());
                        }
                        b++;
                    }
                }
            }
            if (a == n && b == m) {
                break;
            }
        }

        long matrix_C[][] = new long[n][l];

        for (int i = 0; i < n; i++) {
            for (int j = 0; j < l; j++) {
                for (int k = 0; k < m; k++) {
                    matrix_C[i][j] += (matrix_A[i][k] * matrix_B[k][j]);
                }
            }
        }

        for (int i = 0; i < matrix_C.length; i++) {
            for (int j = 0; j < matrix_C[i].length; j++) {
                System.out.print(matrix_C[i][j]);
                if(!(j == l-1))System.out.print(" ");
            }
            System.out.println("");
        }

    }

}

