import java.util.*;
public class Main{

    public static void main(String[] args){

        Scanner sc = new Scanner(System.in);

        int n = Integer.parseInt(sc.next());
        int m = Integer.parseInt(sc.next());
        int l = Integer.parseInt(sc.next());
        
        //n行m列の行列A
        long[][] list_a = new long[n][m];
        for(int i=0; i<n; i++){
            for(int j=0; j<m; j++){
                list_a[i][j] = Integer.parseInt(sc.next());
            }
        }
        
        //m行l列の行列B
        long[][] list_b = new long[m][l];
        for(int i=0; i<m; i++){
            for(int j=0; j<l; j++){
                list_b[i][j] = Integer.parseInt(sc.next());
            }
        }
        
        //n行l列の行列C
        long[][] list_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++){
                    list_c[i][j] += list_a[i][k] * list_b[k][j];
                }
            }
        }
        
        //出力
        for(int i=0; i<n; i++){
            StringBuilder sb = new StringBuilder();
            for(int j=0; j<l; j++){
                sb.append(list_c[i][j]);
                sb.append(" ");
            }
            sb.deleteCharAt(sb.lastIndexOf(" "));
            System.out.println(sb);
        }
    }

}
 import java.util.*; util.* java public class Main{

    public static void main(String[] args){

        Scanner sc = new Scanner(System.in);

        int n = Integer.parseInt(sc.next());
        int m = Integer.parseInt(sc.next());
        int l = Integer.parseInt(sc.next());
        
        //n行m列の行列A
        long[][] list_a = new long[n][m];
        for(int i=0; i<n; i++){
            for(int j=0; j<m; j++){
                list_a[i][j] = Integer.parseInt(sc.next());
            }
        }
        
        //m行l列の行列B
        long[][] list_b = new long[m][l];
        for(int i=0; i<m; i++){
            for(int j=0; j<l; j++){
                list_b[i][j] = Integer.parseInt(sc.next());
            }
        }
        
        //n行l列の行列C
        long[][] list_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++){
                    list_c[i][j] += list_a[i][k] * list_b[k][j];
                }
            }
        }
        
        //出力
        for(int i=0; i<n; i++){
            StringBuilder sb = new StringBuilder();
            for(int j=0; j<l; j++){
                sb.append(list_c[i][j]);
                sb.append(" ");
            }
            sb.deleteCharAt(sb.lastIndexOf(" "));
            System.out.println(sb);
        }
    }

} Main public static void main(String[] args){

        Scanner sc = new Scanner(System.in);

        int n = Integer.parseInt(sc.next());
        int m = Integer.parseInt(sc.next());
        int l = Integer.parseInt(sc.next());
        
        //n行m列の行列A
        long[][] list_a = new long[n][m];
        for(int i=0; i<n; i++){
            for(int j=0; j<m; j++){
                list_a[i][j] = Integer.parseInt(sc.next());
            }
        }
        
        //m行l列の行列B
        long[][] list_b = new long[m][l];
        for(int i=0; i<m; i++){
            for(int j=0; j<l; j++){
                list_b[i][j] = Integer.parseInt(sc.next());
            }
        }
        
        //n行l列の行列C
        long[][] list_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++){
                    list_c[i][j] += list_a[i][k] * list_b[k][j];
                }
            }
        }
        
        //出力
        for(int i=0; i<n; i++){
            StringBuilder sb = new StringBuilder();
            for(int j=0; j<l; j++){
                sb.append(list_c[i][j]);
                sb.append(" ");
            }
            sb.deleteCharAt(sb.lastIndexOf(" "));
            System.out.println(sb);
        }
    } main {

        Scanner sc = new Scanner(System.in);

        int n = Integer.parseInt(sc.next());
        int m = Integer.parseInt(sc.next());
        int l = Integer.parseInt(sc.next());
        
        //n行m列の行列A
        long[][] list_a = new long[n][m];
        for(int i=0; i<n; i++){
            for(int j=0; j<m; j++){
                list_a[i][j] = Integer.parseInt(sc.next());
            }
        }
        
        //m行l列の行列B
        long[][] list_b = new long[m][l];
        for(int i=0; i<m; i++){
            for(int j=0; j<l; j++){
                list_b[i][j] = Integer.parseInt(sc.next());
            }
        }
        
        //n行l列の行列C
        long[][] list_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++){
                    list_c[i][j] += list_a[i][k] * list_b[k][j];
                }
            }
        }
        
        //出力
        for(int i=0; i<n; i++){
            StringBuilder sb = new StringBuilder();
            for(int j=0; j<l; j++){
                sb.append(list_c[i][j]);
                sb.append(" ");
            }
            sb.deleteCharAt(sb.lastIndexOf(" "));
            System.out.println(sb);
        }
    } Scanner sc = new Scanner(System.in); sc new Scanner(System.in) int n = Integer.parseInt(sc.next()); n Integer.parseInt(sc.next()) Integer.parseInt Integer sc.next() sc.next sc int m = Integer.parseInt(sc.next()); m Integer.parseInt(sc.next()) Integer.parseInt Integer sc.next() sc.next sc int l = Integer.parseInt(sc.next()); l Integer.parseInt(sc.next()) Integer.parseInt Integer sc.next() sc.next sc long[][] list_a = new long[n][m]; list_a new long[n][m] n m for(int i=0; i<n; i++){
            for(int j=0; j<m; j++){
                list_a[i][j] = Integer.parseInt(sc.next());
            }
        } int i=0; int i=0; i 0 i<n i n i++ i++ i {
            for(int j=0; j<m; j++){
                list_a[i][j] = Integer.parseInt(sc.next());
            }
        } {
            for(int j=0; j<m; j++){
                list_a[i][j] = Integer.parseInt(sc.next());
            }
        } for(int j=0; j<m; j++){
                list_a[i][j] = Integer.parseInt(sc.next());
            } int j=0; int j=0; j 0 j<m j m j++ j++ j {
                list_a[i][j] = Integer.parseInt(sc.next());
            } {
                list_a[i][j] = Integer.parseInt(sc.next());
            } list_a[i][j] = Integer.parseInt(sc.next()) list_a[i][j] list_a[i] list_a i j Integer.parseInt(sc.next()) Integer.parseInt Integer sc.next() sc.next sc long[][] list_b = new long[m][l]; list_b new long[m][l] m l for(int i=0; i<m; i++){
            for(int j=0; j<l; j++){
                list_b[i][j] = Integer.parseInt(sc.next());
            }
        } int i=0; int i=0; i 0 i<m i m i++ i++ i {
            for(int j=0; j<l; j++){
                list_b[i][j] = Integer.parseInt(sc.next());
            }
        } {
            for(int j=0; j<l; j++){
                list_b[i][j] = Integer.parseInt(sc.next());
            }
        } for(int j=0; j<l; j++){
                list_b[i][j] = Integer.parseInt(sc.next());
            } int j=0; int j=0; j 0 j<l j l j++ j++ j {
                list_b[i][j] = Integer.parseInt(sc.next());
            } {
                list_b[i][j] = Integer.parseInt(sc.next());
            } list_b[i][j] = Integer.parseInt(sc.next()) list_b[i][j] list_b[i] list_b i j Integer.parseInt(sc.next()) Integer.parseInt Integer sc.next() sc.next sc long[][] list_c = new long[n][l]; list_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++){
                    list_c[i][j] += list_a[i][k] * list_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++){
                    list_c[i][j] += list_a[i][k] * list_b[k][j];
                }
            }
        } {
            for(int j=0; j<l; j++){
                for(int k=0; k<m; k++){
                    list_c[i][j] += list_a[i][k] * list_b[k][j];
                }
            }
        } for(int j=0; j<l; j++){
                for(int k=0; k<m; k++){
                    list_c[i][j] += list_a[i][k] * list_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++){
                    list_c[i][j] += list_a[i][k] * list_b[k][j];
                }
            } {
                for(int k=0; k<m; k++){
                    list_c[i][j] += list_a[i][k] * list_b[k][j];
                }
            } for(int k=0; k<m; k++){
                    list_c[i][j] += list_a[i][k] * list_b[k][j];
                } int k=0; int k=0; k 0 k<m k m k++ k++ k {
                    list_c[i][j] += list_a[i][k] * list_b[k][j];
                } {
                    list_c[i][j] += list_a[i][k] * list_b[k][j];
                } list_c[i][j] += list_a[i][k] * list_b[k][j] list_c[i][j] list_c[i] list_c i j list_a[i][k] * list_b[k][j] list_a[i][k] list_a[i] list_a i k list_b[k][j] list_b[k] list_b k j for(int i=0; i<n; i++){
            StringBuilder sb = new StringBuilder();
            for(int j=0; j<l; j++){
                sb.append(list_c[i][j]);
                sb.append(" ");
            }
            sb.deleteCharAt(sb.lastIndexOf(" "));
            System.out.println(sb);
        } int i=0; int i=0; i 0 i<n i n i++ i++ i {
            StringBuilder sb = new StringBuilder();
            for(int j=0; j<l; j++){
                sb.append(list_c[i][j]);
                sb.append(" ");
            }
            sb.deleteCharAt(sb.lastIndexOf(" "));
            System.out.println(sb);
        } {
            StringBuilder sb = new StringBuilder();
            for(int j=0; j<l; j++){
                sb.append(list_c[i][j]);
                sb.append(" ");
            }
            sb.deleteCharAt(sb.lastIndexOf(" "));
            System.out.println(sb);
        } StringBuilder sb = new StringBuilder(); sb new StringBuilder() for(int j=0; j<l; j++){
                sb.append(list_c[i][j]);
                sb.append(" ");
            } int j=0; int j=0; j 0 j<l j l j++ j++ j {
                sb.append(list_c[i][j]);
                sb.append(" ");
            } {
                sb.append(list_c[i][j]);
                sb.append(" ");
            } sb.append(list_c[i][j]) sb.append sb list_c[i][j] list_c[i] list_c i j sb.append(" ") sb.append sb " " sb.deleteCharAt(sb.lastIndexOf(" ")) sb.deleteCharAt sb sb.lastIndexOf(" ") sb.lastIndexOf sb " " 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){

        Scanner sc = new Scanner(System.in);

        int n = Integer.parseInt(sc.next());
        int m = Integer.parseInt(sc.next());
        int l = Integer.parseInt(sc.next());
        
        //n行m列の行列A
        long[][] list_a = new long[n][m];
        for(int i=0; i<n; i++){
            for(int j=0; j<m; j++){
                list_a[i][j] = Integer.parseInt(sc.next());
            }
        }
        
        //m行l列の行列B
        long[][] list_b = new long[m][l];
        for(int i=0; i<m; i++){
            for(int j=0; j<l; j++){
                list_b[i][j] = Integer.parseInt(sc.next());
            }
        }
        
        //n行l列の行列C
        long[][] list_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++){
                    list_c[i][j] += list_a[i][k] * list_b[k][j];
                }
            }
        }
        
        //出力
        for(int i=0; i<n; i++){
            StringBuilder sb = new StringBuilder();
            for(int j=0; j<l; j++){
                sb.append(list_c[i][j]);
                sb.append(" ");
            }
            sb.deleteCharAt(sb.lastIndexOf(" "));
            System.out.println(sb);
        }
    }

} public class Main{

    public static void main(String[] args){

        Scanner sc = new Scanner(System.in);

        int n = Integer.parseInt(sc.next());
        int m = Integer.parseInt(sc.next());
        int l = Integer.parseInt(sc.next());
        
        //n行m列の行列A
        long[][] list_a = new long[n][m];
        for(int i=0; i<n; i++){
            for(int j=0; j<m; j++){
                list_a[i][j] = Integer.parseInt(sc.next());
            }
        }
        
        //m行l列の行列B
        long[][] list_b = new long[m][l];
        for(int i=0; i<m; i++){
            for(int j=0; j<l; j++){
                list_b[i][j] = Integer.parseInt(sc.next());
            }
        }
        
        //n行l列の行列C
        long[][] list_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++){
                    list_c[i][j] += list_a[i][k] * list_b[k][j];
                }
            }
        }
        
        //出力
        for(int i=0; i<n; i++){
            StringBuilder sb = new StringBuilder();
            for(int j=0; j<l; j++){
                sb.append(list_c[i][j]);
                sb.append(" ");
            }
            sb.deleteCharAt(sb.lastIndexOf(" "));
            System.out.println(sb);
        }
    }

} Main
import java.util.*;
public class Main{

    public static void main(String[] args){

        Scanner sc = new Scanner(System.in);

        int n = Integer.parseInt(sc.next());
        int m = Integer.parseInt(sc.next());
        int l = Integer.parseInt(sc.next());
        
        //n行m列の行列A
        long[][] list_a = new long[n][m];
        for(int i=0; i<n; i++){
            for(int j=0; j<m; j++){
                list_a[i][j] = Integer.parseInt(sc.next());
            }
        }
        
        //m行l列の行列B
        long[][] list_b = new long[m][l];
        for(int i=0; i<m; i++){
            for(int j=0; j<l; j++){
                list_b[i][j] = Integer.parseInt(sc.next());
            }
        }
        
        //n行l列の行列C
        long[][] list_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++){
                    list_c[i][j] += list_a[i][k] * list_b[k][j];
                }
            }
        }
        
        //出力
        for(int i=0; i<n; i++){
            StringBuilder sb = new StringBuilder();
            for(int j=0; j<l; j++){
                sb.append(list_c[i][j]);
                sb.append(" ");
            }
            sb.deleteCharAt(sb.lastIndexOf(" "));
            System.out.println(sb);
        }
    }

}

