import java.util.Scanner;
import java.math.BigInteger;

public class Main {
       public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        int a = input.nextInt(); // Rows of the 1st matrix
        int b = input.nextInt(); // Columns of 1st Matrix and Rows of 2 Matrix
        int c = input.nextInt(); // Columns of 2nd matrix

        BigInteger[][] A = new BigInteger[a][b];
        BigInteger[][] B = new BigInteger[b][c];

        // Build matrix A
        for(int row = 0; row < a; row++){
            for(int col = 0; col < b; col++){
                A[row][col] = BigInteger.valueOf(input.nextInt());
            }
        }

        // Build martix B
        for(int row = 0; row < b; row++){
            for(int col = 0; col < c; col++){
                B[row][col] = BigInteger.valueOf(input.nextInt());
            }
        }

        // Multiple out
        BigInteger[][] result = new BigInteger[a][c];

        for(int row = 0; row < a; row++){
            for(int col = 0; col < c; col++){
                BigInteger temp = sum(A[row], B, col);
                result[row][col] = temp;
            }
        }
        showSheet(result); // Display the result
    }

    // Helper function that computes the value of a cell in the result matrix
    // Takes an (a x 1) vector that is a row of A and then the entire B matrix, and a colIndex that indicates where to index B
    private static BigInteger sum(BigInteger[] row, BigInteger[][] matrix, int colIndex){
        BigInteger total = BigInteger.ZERO;
        for(int i = 0; i < row.length; i++){
            total = total.add(row[i].multiply(matrix[i][colIndex]));
        }
        return total;
    }

    // Helper function that displays a 2D int array
    private static void showSheet(BigInteger[][] result){
        for(int i = 0; i < result.length; i++){
            for(int j = 0; j < result[0].length; j++){
                System.out.print(result[i][j]);
                if( j < result[0].length - 1) System.out.print(" ");
            }
            System.out.print("\n");
        }
    }
} import java.util.Scanner; Scanner java.util import java.math.BigInteger; BigInteger java.math public class Main {
       public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        int a = input.nextInt(); // Rows of the 1st matrix
        int b = input.nextInt(); // Columns of 1st Matrix and Rows of 2 Matrix
        int c = input.nextInt(); // Columns of 2nd matrix

        BigInteger[][] A = new BigInteger[a][b];
        BigInteger[][] B = new BigInteger[b][c];

        // Build matrix A
        for(int row = 0; row < a; row++){
            for(int col = 0; col < b; col++){
                A[row][col] = BigInteger.valueOf(input.nextInt());
            }
        }

        // Build martix B
        for(int row = 0; row < b; row++){
            for(int col = 0; col < c; col++){
                B[row][col] = BigInteger.valueOf(input.nextInt());
            }
        }

        // Multiple out
        BigInteger[][] result = new BigInteger[a][c];

        for(int row = 0; row < a; row++){
            for(int col = 0; col < c; col++){
                BigInteger temp = sum(A[row], B, col);
                result[row][col] = temp;
            }
        }
        showSheet(result); // Display the result
    }

    // Helper function that computes the value of a cell in the result matrix
    // Takes an (a x 1) vector that is a row of A and then the entire B matrix, and a colIndex that indicates where to index B
    private static BigInteger sum(BigInteger[] row, BigInteger[][] matrix, int colIndex){
        BigInteger total = BigInteger.ZERO;
        for(int i = 0; i < row.length; i++){
            total = total.add(row[i].multiply(matrix[i][colIndex]));
        }
        return total;
    }

    // Helper function that displays a 2D int array
    private static void showSheet(BigInteger[][] result){
        for(int i = 0; i < result.length; i++){
            for(int j = 0; j < result[0].length; j++){
                System.out.print(result[i][j]);
                if( j < result[0].length - 1) System.out.print(" ");
            }
            System.out.print("\n");
        }
    }
} Main public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        int a = input.nextInt(); // Rows of the 1st matrix
        int b = input.nextInt(); // Columns of 1st Matrix and Rows of 2 Matrix
        int c = input.nextInt(); // Columns of 2nd matrix

        BigInteger[][] A = new BigInteger[a][b];
        BigInteger[][] B = new BigInteger[b][c];

        // Build matrix A
        for(int row = 0; row < a; row++){
            for(int col = 0; col < b; col++){
                A[row][col] = BigInteger.valueOf(input.nextInt());
            }
        }

        // Build martix B
        for(int row = 0; row < b; row++){
            for(int col = 0; col < c; col++){
                B[row][col] = BigInteger.valueOf(input.nextInt());
            }
        }

        // Multiple out
        BigInteger[][] result = new BigInteger[a][c];

        for(int row = 0; row < a; row++){
            for(int col = 0; col < c; col++){
                BigInteger temp = sum(A[row], B, col);
                result[row][col] = temp;
            }
        }
        showSheet(result); // Display the result
    } main {
        Scanner input = new Scanner(System.in);
        int a = input.nextInt(); // Rows of the 1st matrix
        int b = input.nextInt(); // Columns of 1st Matrix and Rows of 2 Matrix
        int c = input.nextInt(); // Columns of 2nd matrix

        BigInteger[][] A = new BigInteger[a][b];
        BigInteger[][] B = new BigInteger[b][c];

        // Build matrix A
        for(int row = 0; row < a; row++){
            for(int col = 0; col < b; col++){
                A[row][col] = BigInteger.valueOf(input.nextInt());
            }
        }

        // Build martix B
        for(int row = 0; row < b; row++){
            for(int col = 0; col < c; col++){
                B[row][col] = BigInteger.valueOf(input.nextInt());
            }
        }

        // Multiple out
        BigInteger[][] result = new BigInteger[a][c];

        for(int row = 0; row < a; row++){
            for(int col = 0; col < c; col++){
                BigInteger temp = sum(A[row], B, col);
                result[row][col] = temp;
            }
        }
        showSheet(result); // Display the result
    } Scanner input = new Scanner(System.in); input new Scanner(System.in) int a = input.nextInt(); a input.nextInt() input.nextInt input int b = input.nextInt(); b input.nextInt() input.nextInt input int c = input.nextInt(); c input.nextInt() input.nextInt input BigInteger[][] A = new BigInteger[a][b]; A new BigInteger[a][b] a b BigInteger[][] B = new BigInteger[b][c]; B new BigInteger[b][c] b c for(int row = 0; row < a; row++){
            for(int col = 0; col < b; col++){
                A[row][col] = BigInteger.valueOf(input.nextInt());
            }
        } int row = 0; int row = 0; row 0 row < a row a row++ row++ row {
            for(int col = 0; col < b; col++){
                A[row][col] = BigInteger.valueOf(input.nextInt());
            }
        } {
            for(int col = 0; col < b; col++){
                A[row][col] = BigInteger.valueOf(input.nextInt());
            }
        } for(int col = 0; col < b; col++){
                A[row][col] = BigInteger.valueOf(input.nextInt());
            } int col = 0; int col = 0; col 0 col < b col b col++ col++ col {
                A[row][col] = BigInteger.valueOf(input.nextInt());
            } {
                A[row][col] = BigInteger.valueOf(input.nextInt());
            } A[row][col] = BigInteger.valueOf(input.nextInt()) A[row][col] A[row] A row col BigInteger.valueOf(input.nextInt()) BigInteger.valueOf BigInteger input.nextInt() input.nextInt input for(int row = 0; row < b; row++){
            for(int col = 0; col < c; col++){
                B[row][col] = BigInteger.valueOf(input.nextInt());
            }
        } int row = 0; int row = 0; row 0 row < b row b row++ row++ row {
            for(int col = 0; col < c; col++){
                B[row][col] = BigInteger.valueOf(input.nextInt());
            }
        } {
            for(int col = 0; col < c; col++){
                B[row][col] = BigInteger.valueOf(input.nextInt());
            }
        } for(int col = 0; col < c; col++){
                B[row][col] = BigInteger.valueOf(input.nextInt());
            } int col = 0; int col = 0; col 0 col < c col c col++ col++ col {
                B[row][col] = BigInteger.valueOf(input.nextInt());
            } {
                B[row][col] = BigInteger.valueOf(input.nextInt());
            } B[row][col] = BigInteger.valueOf(input.nextInt()) B[row][col] B[row] B row col BigInteger.valueOf(input.nextInt()) BigInteger.valueOf BigInteger input.nextInt() input.nextInt input BigInteger[][] result = new BigInteger[a][c]; result new BigInteger[a][c] a c for(int row = 0; row < a; row++){
            for(int col = 0; col < c; col++){
                BigInteger temp = sum(A[row], B, col);
                result[row][col] = temp;
            }
        } int row = 0; int row = 0; row 0 row < a row a row++ row++ row {
            for(int col = 0; col < c; col++){
                BigInteger temp = sum(A[row], B, col);
                result[row][col] = temp;
            }
        } {
            for(int col = 0; col < c; col++){
                BigInteger temp = sum(A[row], B, col);
                result[row][col] = temp;
            }
        } for(int col = 0; col < c; col++){
                BigInteger temp = sum(A[row], B, col);
                result[row][col] = temp;
            } int col = 0; int col = 0; col 0 col < c col c col++ col++ col {
                BigInteger temp = sum(A[row], B, col);
                result[row][col] = temp;
            } {
                BigInteger temp = sum(A[row], B, col);
                result[row][col] = temp;
            } BigInteger temp = sum(A[row], B, col); temp sum(A[row], B, col) sum A[row] A row B col result[row][col] = temp result[row][col] result[row] result row col temp showSheet(result) showSheet result String[] args args // Helper function that computes the value of a cell in the result matrix
    // Takes an (a x 1) vector that is a row of A and then the entire B matrix, and a colIndex that indicates where to index B
    private static BigInteger sum(BigInteger[] row, BigInteger[][] matrix, int colIndex){
        BigInteger total = BigInteger.ZERO;
        for(int i = 0; i < row.length; i++){
            total = total.add(row[i].multiply(matrix[i][colIndex]));
        }
        return total;
    } sum {
        BigInteger total = BigInteger.ZERO;
        for(int i = 0; i < row.length; i++){
            total = total.add(row[i].multiply(matrix[i][colIndex]));
        }
        return total;
    } BigInteger total = BigInteger.ZERO; total BigInteger.ZERO BigInteger BigInteger.ZERO for(int i = 0; i < row.length; i++){
            total = total.add(row[i].multiply(matrix[i][colIndex]));
        } int i = 0; int i = 0; i 0 i < row.length i row.length row row.length i++ i++ i {
            total = total.add(row[i].multiply(matrix[i][colIndex]));
        } {
            total = total.add(row[i].multiply(matrix[i][colIndex]));
        } total = total.add(row[i].multiply(matrix[i][colIndex])) total total.add(row[i].multiply(matrix[i][colIndex])) total.add total row[i].multiply(matrix[i][colIndex]) row[i].multiply row[i] row i matrix[i][colIndex] matrix[i] matrix i colIndex return total; total BigInteger[] row row BigInteger[][] matrix matrix int colIndex colIndex // Helper function that displays a 2D int array
    private static void showSheet(BigInteger[][] result){
        for(int i = 0; i < result.length; i++){
            for(int j = 0; j < result[0].length; j++){
                System.out.print(result[i][j]);
                if( j < result[0].length - 1) System.out.print(" ");
            }
            System.out.print("\n");
        }
    } showSheet {
        for(int i = 0; i < result.length; i++){
            for(int j = 0; j < result[0].length; j++){
                System.out.print(result[i][j]);
                if( j < result[0].length - 1) System.out.print(" ");
            }
            System.out.print("\n");
        }
    } for(int i = 0; i < result.length; i++){
            for(int j = 0; j < result[0].length; j++){
                System.out.print(result[i][j]);
                if( j < result[0].length - 1) System.out.print(" ");
            }
            System.out.print("\n");
        } int i = 0; int i = 0; i 0 i < result.length i result.length result result.length i++ i++ i {
            for(int j = 0; j < result[0].length; j++){
                System.out.print(result[i][j]);
                if( j < result[0].length - 1) System.out.print(" ");
            }
            System.out.print("\n");
        } {
            for(int j = 0; j < result[0].length; j++){
                System.out.print(result[i][j]);
                if( j < result[0].length - 1) System.out.print(" ");
            }
            System.out.print("\n");
        } for(int j = 0; j < result[0].length; j++){
                System.out.print(result[i][j]);
                if( j < result[0].length - 1) System.out.print(" ");
            } int j = 0; int j = 0; j 0 j < result[0].length j result[0].length result[0] result 0 result[0].length j++ j++ j {
                System.out.print(result[i][j]);
                if( j < result[0].length - 1) System.out.print(" ");
            } {
                System.out.print(result[i][j]);
                if( j < result[0].length - 1) System.out.print(" ");
            } System.out.print(result[i][j]) System.out.print System.out System System.out result[i][j] result[i] result i j if( j < result[0].length - 1) System.out.print(" "); j < result[0].length - 1 j result[0].length - 1 result[0].length result[0] result 0 result[0].length 1 System.out.print(" ") System.out.print System.out System System.out " " System.out.print("\n") System.out.print System.out System System.out "\n" BigInteger[][] result result public class Main {
       public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        int a = input.nextInt(); // Rows of the 1st matrix
        int b = input.nextInt(); // Columns of 1st Matrix and Rows of 2 Matrix
        int c = input.nextInt(); // Columns of 2nd matrix

        BigInteger[][] A = new BigInteger[a][b];
        BigInteger[][] B = new BigInteger[b][c];

        // Build matrix A
        for(int row = 0; row < a; row++){
            for(int col = 0; col < b; col++){
                A[row][col] = BigInteger.valueOf(input.nextInt());
            }
        }

        // Build martix B
        for(int row = 0; row < b; row++){
            for(int col = 0; col < c; col++){
                B[row][col] = BigInteger.valueOf(input.nextInt());
            }
        }

        // Multiple out
        BigInteger[][] result = new BigInteger[a][c];

        for(int row = 0; row < a; row++){
            for(int col = 0; col < c; col++){
                BigInteger temp = sum(A[row], B, col);
                result[row][col] = temp;
            }
        }
        showSheet(result); // Display the result
    }

    // Helper function that computes the value of a cell in the result matrix
    // Takes an (a x 1) vector that is a row of A and then the entire B matrix, and a colIndex that indicates where to index B
    private static BigInteger sum(BigInteger[] row, BigInteger[][] matrix, int colIndex){
        BigInteger total = BigInteger.ZERO;
        for(int i = 0; i < row.length; i++){
            total = total.add(row[i].multiply(matrix[i][colIndex]));
        }
        return total;
    }

    // Helper function that displays a 2D int array
    private static void showSheet(BigInteger[][] result){
        for(int i = 0; i < result.length; i++){
            for(int j = 0; j < result[0].length; j++){
                System.out.print(result[i][j]);
                if( j < result[0].length - 1) System.out.print(" ");
            }
            System.out.print("\n");
        }
    }
} public class Main {
       public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        int a = input.nextInt(); // Rows of the 1st matrix
        int b = input.nextInt(); // Columns of 1st Matrix and Rows of 2 Matrix
        int c = input.nextInt(); // Columns of 2nd matrix

        BigInteger[][] A = new BigInteger[a][b];
        BigInteger[][] B = new BigInteger[b][c];

        // Build matrix A
        for(int row = 0; row < a; row++){
            for(int col = 0; col < b; col++){
                A[row][col] = BigInteger.valueOf(input.nextInt());
            }
        }

        // Build martix B
        for(int row = 0; row < b; row++){
            for(int col = 0; col < c; col++){
                B[row][col] = BigInteger.valueOf(input.nextInt());
            }
        }

        // Multiple out
        BigInteger[][] result = new BigInteger[a][c];

        for(int row = 0; row < a; row++){
            for(int col = 0; col < c; col++){
                BigInteger temp = sum(A[row], B, col);
                result[row][col] = temp;
            }
        }
        showSheet(result); // Display the result
    }

    // Helper function that computes the value of a cell in the result matrix
    // Takes an (a x 1) vector that is a row of A and then the entire B matrix, and a colIndex that indicates where to index B
    private static BigInteger sum(BigInteger[] row, BigInteger[][] matrix, int colIndex){
        BigInteger total = BigInteger.ZERO;
        for(int i = 0; i < row.length; i++){
            total = total.add(row[i].multiply(matrix[i][colIndex]));
        }
        return total;
    }

    // Helper function that displays a 2D int array
    private static void showSheet(BigInteger[][] result){
        for(int i = 0; i < result.length; i++){
            for(int j = 0; j < result[0].length; j++){
                System.out.print(result[i][j]);
                if( j < result[0].length - 1) System.out.print(" ");
            }
            System.out.print("\n");
        }
    }
} Main
import java.util.Scanner;
import java.math.BigInteger;

public class Main {
       public static void main(String[] args) {
        Scanner input = new Scanner(System.in);
        int a = input.nextInt(); // Rows of the 1st matrix
        int b = input.nextInt(); // Columns of 1st Matrix and Rows of 2 Matrix
        int c = input.nextInt(); // Columns of 2nd matrix

        BigInteger[][] A = new BigInteger[a][b];
        BigInteger[][] B = new BigInteger[b][c];

        // Build matrix A
        for(int row = 0; row < a; row++){
            for(int col = 0; col < b; col++){
                A[row][col] = BigInteger.valueOf(input.nextInt());
            }
        }

        // Build martix B
        for(int row = 0; row < b; row++){
            for(int col = 0; col < c; col++){
                B[row][col] = BigInteger.valueOf(input.nextInt());
            }
        }

        // Multiple out
        BigInteger[][] result = new BigInteger[a][c];

        for(int row = 0; row < a; row++){
            for(int col = 0; col < c; col++){
                BigInteger temp = sum(A[row], B, col);
                result[row][col] = temp;
            }
        }
        showSheet(result); // Display the result
    }

    // Helper function that computes the value of a cell in the result matrix
    // Takes an (a x 1) vector that is a row of A and then the entire B matrix, and a colIndex that indicates where to index B
    private static BigInteger sum(BigInteger[] row, BigInteger[][] matrix, int colIndex){
        BigInteger total = BigInteger.ZERO;
        for(int i = 0; i < row.length; i++){
            total = total.add(row[i].multiply(matrix[i][colIndex]));
        }
        return total;
    }

    // Helper function that displays a 2D int array
    private static void showSheet(BigInteger[][] result){
        for(int i = 0; i < result.length; i++){
            for(int j = 0; j < result[0].length; j++){
                System.out.print(result[i][j]);
                if( j < result[0].length - 1) System.out.print(" ");
            }
            System.out.print("\n");
        }
    }
}
