import java.util.Scanner;

public class Main {
   public static void main (String[] args) {
      Scanner sc = new Scanner(System.in);
      String[] input = sc.nextLine().split(" ");
      
      int n = Integer.parseInt(input[0]);
      int m = Integer.parseInt(input[1]);
      int l = Integer.parseInt(input[2]);
      
      //declare matrices
      long[][] matrix_1 = new long[n][m];
      long[][] matrix_2 = new long[m][l];
      long[][] answer = new long[n][l];
            
      //initialize matrix_1
      for(int i = 0; i < n; i ++) {
         input = sc.nextLine().split(" ");
         for(int j = 0; j < m; j ++) {
            matrix_1[i][j] = Integer.parseInt(input[j]);
         }
      }
      
      //initialize matrix_2
      for(int i = 0; i < m; i ++) {
         input = sc.nextLine().split(" ");
         for(int j = 0; j < l; j ++) {
            matrix_2[i][j] = Integer.parseInt(input[j]);
         }
      }
      //calculation
      for(int i = 0; i < n; i ++) {
         for(int j = 0; j < l; j ++) {
            long temp = 0;
            for(int k = 0; k < m; k ++) {
               temp += matrix_1[i][k] * matrix_2[k][j];
            }
            answer[i][j] = temp;
         }
      }
      
      //print out
      for(int i = 0; i < n; i ++) {
         String output = "";
         for(int j = 0; j < l; j ++) {
            output += answer[i][j] + " ";
         }
         System.out.println(output.trim());
      }
      
   }
} import java.util.Scanner; Scanner java.util public class Main {
   public static void main (String[] args) {
      Scanner sc = new Scanner(System.in);
      String[] input = sc.nextLine().split(" ");
      
      int n = Integer.parseInt(input[0]);
      int m = Integer.parseInt(input[1]);
      int l = Integer.parseInt(input[2]);
      
      //declare matrices
      long[][] matrix_1 = new long[n][m];
      long[][] matrix_2 = new long[m][l];
      long[][] answer = new long[n][l];
            
      //initialize matrix_1
      for(int i = 0; i < n; i ++) {
         input = sc.nextLine().split(" ");
         for(int j = 0; j < m; j ++) {
            matrix_1[i][j] = Integer.parseInt(input[j]);
         }
      }
      
      //initialize matrix_2
      for(int i = 0; i < m; i ++) {
         input = sc.nextLine().split(" ");
         for(int j = 0; j < l; j ++) {
            matrix_2[i][j] = Integer.parseInt(input[j]);
         }
      }
      //calculation
      for(int i = 0; i < n; i ++) {
         for(int j = 0; j < l; j ++) {
            long temp = 0;
            for(int k = 0; k < m; k ++) {
               temp += matrix_1[i][k] * matrix_2[k][j];
            }
            answer[i][j] = temp;
         }
      }
      
      //print out
      for(int i = 0; i < n; i ++) {
         String output = "";
         for(int j = 0; j < l; j ++) {
            output += answer[i][j] + " ";
         }
         System.out.println(output.trim());
      }
      
   }
} Main public static void main (String[] args) {
      Scanner sc = new Scanner(System.in);
      String[] input = sc.nextLine().split(" ");
      
      int n = Integer.parseInt(input[0]);
      int m = Integer.parseInt(input[1]);
      int l = Integer.parseInt(input[2]);
      
      //declare matrices
      long[][] matrix_1 = new long[n][m];
      long[][] matrix_2 = new long[m][l];
      long[][] answer = new long[n][l];
            
      //initialize matrix_1
      for(int i = 0; i < n; i ++) {
         input = sc.nextLine().split(" ");
         for(int j = 0; j < m; j ++) {
            matrix_1[i][j] = Integer.parseInt(input[j]);
         }
      }
      
      //initialize matrix_2
      for(int i = 0; i < m; i ++) {
         input = sc.nextLine().split(" ");
         for(int j = 0; j < l; j ++) {
            matrix_2[i][j] = Integer.parseInt(input[j]);
         }
      }
      //calculation
      for(int i = 0; i < n; i ++) {
         for(int j = 0; j < l; j ++) {
            long temp = 0;
            for(int k = 0; k < m; k ++) {
               temp += matrix_1[i][k] * matrix_2[k][j];
            }
            answer[i][j] = temp;
         }
      }
      
      //print out
      for(int i = 0; i < n; i ++) {
         String output = "";
         for(int j = 0; j < l; j ++) {
            output += answer[i][j] + " ";
         }
         System.out.println(output.trim());
      }
      
   } main {
      Scanner sc = new Scanner(System.in);
      String[] input = sc.nextLine().split(" ");
      
      int n = Integer.parseInt(input[0]);
      int m = Integer.parseInt(input[1]);
      int l = Integer.parseInt(input[2]);
      
      //declare matrices
      long[][] matrix_1 = new long[n][m];
      long[][] matrix_2 = new long[m][l];
      long[][] answer = new long[n][l];
            
      //initialize matrix_1
      for(int i = 0; i < n; i ++) {
         input = sc.nextLine().split(" ");
         for(int j = 0; j < m; j ++) {
            matrix_1[i][j] = Integer.parseInt(input[j]);
         }
      }
      
      //initialize matrix_2
      for(int i = 0; i < m; i ++) {
         input = sc.nextLine().split(" ");
         for(int j = 0; j < l; j ++) {
            matrix_2[i][j] = Integer.parseInt(input[j]);
         }
      }
      //calculation
      for(int i = 0; i < n; i ++) {
         for(int j = 0; j < l; j ++) {
            long temp = 0;
            for(int k = 0; k < m; k ++) {
               temp += matrix_1[i][k] * matrix_2[k][j];
            }
            answer[i][j] = temp;
         }
      }
      
      //print out
      for(int i = 0; i < n; i ++) {
         String output = "";
         for(int j = 0; j < l; j ++) {
            output += answer[i][j] + " ";
         }
         System.out.println(output.trim());
      }
      
   } Scanner sc = new Scanner(System.in); sc new Scanner(System.in) String[] input = sc.nextLine().split(" "); input sc.nextLine().split(" ") sc.nextLine().split sc.nextLine() sc.nextLine sc " " int n = Integer.parseInt(input[0]); n Integer.parseInt(input[0]) Integer.parseInt Integer input[0] input 0 int m = Integer.parseInt(input[1]); m Integer.parseInt(input[1]) Integer.parseInt Integer input[1] input 1 int l = Integer.parseInt(input[2]); l Integer.parseInt(input[2]) Integer.parseInt Integer input[2] input 2 long[][] matrix_1 = new long[n][m]; matrix_1 new long[n][m] n m long[][] matrix_2 = new long[m][l]; matrix_2 new long[m][l] m l long[][] answer = new long[n][l]; answer new long[n][l] n l for(int i = 0; i < n; i ++) {
         input = sc.nextLine().split(" ");
         for(int j = 0; j < m; j ++) {
            matrix_1[i][j] = Integer.parseInt(input[j]);
         }
      } int i = 0; int i = 0; i 0 i < n i n i ++ i ++ i {
         input = sc.nextLine().split(" ");
         for(int j = 0; j < m; j ++) {
            matrix_1[i][j] = Integer.parseInt(input[j]);
         }
      } {
         input = sc.nextLine().split(" ");
         for(int j = 0; j < m; j ++) {
            matrix_1[i][j] = Integer.parseInt(input[j]);
         }
      } input = sc.nextLine().split(" ") input sc.nextLine().split(" ") sc.nextLine().split sc.nextLine() sc.nextLine sc " " for(int j = 0; j < m; j ++) {
            matrix_1[i][j] = Integer.parseInt(input[j]);
         } int j = 0; int j = 0; j 0 j < m j m j ++ j ++ j {
            matrix_1[i][j] = Integer.parseInt(input[j]);
         } {
            matrix_1[i][j] = Integer.parseInt(input[j]);
         } matrix_1[i][j] = Integer.parseInt(input[j]) matrix_1[i][j] matrix_1[i] matrix_1 i j Integer.parseInt(input[j]) Integer.parseInt Integer input[j] input j for(int i = 0; i < m; i ++) {
         input = sc.nextLine().split(" ");
         for(int j = 0; j < l; j ++) {
            matrix_2[i][j] = Integer.parseInt(input[j]);
         }
      } int i = 0; int i = 0; i 0 i < m i m i ++ i ++ i {
         input = sc.nextLine().split(" ");
         for(int j = 0; j < l; j ++) {
            matrix_2[i][j] = Integer.parseInt(input[j]);
         }
      } {
         input = sc.nextLine().split(" ");
         for(int j = 0; j < l; j ++) {
            matrix_2[i][j] = Integer.parseInt(input[j]);
         }
      } input = sc.nextLine().split(" ") input sc.nextLine().split(" ") sc.nextLine().split sc.nextLine() sc.nextLine sc " " for(int j = 0; j < l; j ++) {
            matrix_2[i][j] = Integer.parseInt(input[j]);
         } int j = 0; int j = 0; j 0 j < l j l j ++ j ++ j {
            matrix_2[i][j] = Integer.parseInt(input[j]);
         } {
            matrix_2[i][j] = Integer.parseInt(input[j]);
         } matrix_2[i][j] = Integer.parseInt(input[j]) matrix_2[i][j] matrix_2[i] matrix_2 i j Integer.parseInt(input[j]) Integer.parseInt Integer input[j] input j for(int i = 0; i < n; i ++) {
         for(int j = 0; j < l; j ++) {
            long temp = 0;
            for(int k = 0; k < m; k ++) {
               temp += matrix_1[i][k] * matrix_2[k][j];
            }
            answer[i][j] = temp;
         }
      } int i = 0; int i = 0; i 0 i < n i n i ++ i ++ i {
         for(int j = 0; j < l; j ++) {
            long temp = 0;
            for(int k = 0; k < m; k ++) {
               temp += matrix_1[i][k] * matrix_2[k][j];
            }
            answer[i][j] = temp;
         }
      } {
         for(int j = 0; j < l; j ++) {
            long temp = 0;
            for(int k = 0; k < m; k ++) {
               temp += matrix_1[i][k] * matrix_2[k][j];
            }
            answer[i][j] = temp;
         }
      } for(int j = 0; j < l; j ++) {
            long temp = 0;
            for(int k = 0; k < m; k ++) {
               temp += matrix_1[i][k] * matrix_2[k][j];
            }
            answer[i][j] = temp;
         } int j = 0; int j = 0; j 0 j < l j l j ++ j ++ j {
            long temp = 0;
            for(int k = 0; k < m; k ++) {
               temp += matrix_1[i][k] * matrix_2[k][j];
            }
            answer[i][j] = temp;
         } {
            long temp = 0;
            for(int k = 0; k < m; k ++) {
               temp += matrix_1[i][k] * matrix_2[k][j];
            }
            answer[i][j] = temp;
         } long temp = 0; temp 0 for(int k = 0; k < m; k ++) {
               temp += matrix_1[i][k] * matrix_2[k][j];
            } int k = 0; int k = 0; k 0 k < m k m k ++ k ++ k {
               temp += matrix_1[i][k] * matrix_2[k][j];
            } {
               temp += matrix_1[i][k] * matrix_2[k][j];
            } temp += matrix_1[i][k] * matrix_2[k][j] temp matrix_1[i][k] * matrix_2[k][j] matrix_1[i][k] matrix_1[i] matrix_1 i k matrix_2[k][j] matrix_2[k] matrix_2 k j answer[i][j] = temp answer[i][j] answer[i] answer i j temp for(int i = 0; i < n; i ++) {
         String output = "";
         for(int j = 0; j < l; j ++) {
            output += answer[i][j] + " ";
         }
         System.out.println(output.trim());
      } int i = 0; int i = 0; i 0 i < n i n i ++ i ++ i {
         String output = "";
         for(int j = 0; j < l; j ++) {
            output += answer[i][j] + " ";
         }
         System.out.println(output.trim());
      } {
         String output = "";
         for(int j = 0; j < l; j ++) {
            output += answer[i][j] + " ";
         }
         System.out.println(output.trim());
      } String output = ""; output "" for(int j = 0; j < l; j ++) {
            output += answer[i][j] + " ";
         } int j = 0; int j = 0; j 0 j < l j l j ++ j ++ j {
            output += answer[i][j] + " ";
         } {
            output += answer[i][j] + " ";
         } output += answer[i][j] + " " output answer[i][j] + " " answer[i][j] answer[i] answer i j " " System.out.println(output.trim()) System.out.println System.out System System.out output.trim() output.trim output String[] args args public class Main {
   public static void main (String[] args) {
      Scanner sc = new Scanner(System.in);
      String[] input = sc.nextLine().split(" ");
      
      int n = Integer.parseInt(input[0]);
      int m = Integer.parseInt(input[1]);
      int l = Integer.parseInt(input[2]);
      
      //declare matrices
      long[][] matrix_1 = new long[n][m];
      long[][] matrix_2 = new long[m][l];
      long[][] answer = new long[n][l];
            
      //initialize matrix_1
      for(int i = 0; i < n; i ++) {
         input = sc.nextLine().split(" ");
         for(int j = 0; j < m; j ++) {
            matrix_1[i][j] = Integer.parseInt(input[j]);
         }
      }
      
      //initialize matrix_2
      for(int i = 0; i < m; i ++) {
         input = sc.nextLine().split(" ");
         for(int j = 0; j < l; j ++) {
            matrix_2[i][j] = Integer.parseInt(input[j]);
         }
      }
      //calculation
      for(int i = 0; i < n; i ++) {
         for(int j = 0; j < l; j ++) {
            long temp = 0;
            for(int k = 0; k < m; k ++) {
               temp += matrix_1[i][k] * matrix_2[k][j];
            }
            answer[i][j] = temp;
         }
      }
      
      //print out
      for(int i = 0; i < n; i ++) {
         String output = "";
         for(int j = 0; j < l; j ++) {
            output += answer[i][j] + " ";
         }
         System.out.println(output.trim());
      }
      
   }
} public class Main {
   public static void main (String[] args) {
      Scanner sc = new Scanner(System.in);
      String[] input = sc.nextLine().split(" ");
      
      int n = Integer.parseInt(input[0]);
      int m = Integer.parseInt(input[1]);
      int l = Integer.parseInt(input[2]);
      
      //declare matrices
      long[][] matrix_1 = new long[n][m];
      long[][] matrix_2 = new long[m][l];
      long[][] answer = new long[n][l];
            
      //initialize matrix_1
      for(int i = 0; i < n; i ++) {
         input = sc.nextLine().split(" ");
         for(int j = 0; j < m; j ++) {
            matrix_1[i][j] = Integer.parseInt(input[j]);
         }
      }
      
      //initialize matrix_2
      for(int i = 0; i < m; i ++) {
         input = sc.nextLine().split(" ");
         for(int j = 0; j < l; j ++) {
            matrix_2[i][j] = Integer.parseInt(input[j]);
         }
      }
      //calculation
      for(int i = 0; i < n; i ++) {
         for(int j = 0; j < l; j ++) {
            long temp = 0;
            for(int k = 0; k < m; k ++) {
               temp += matrix_1[i][k] * matrix_2[k][j];
            }
            answer[i][j] = temp;
         }
      }
      
      //print out
      for(int i = 0; i < n; i ++) {
         String output = "";
         for(int j = 0; j < l; j ++) {
            output += answer[i][j] + " ";
         }
         System.out.println(output.trim());
      }
      
   }
} Main
import java.util.Scanner;

public class Main {
   public static void main (String[] args) {
      Scanner sc = new Scanner(System.in);
      String[] input = sc.nextLine().split(" ");
      
      int n = Integer.parseInt(input[0]);
      int m = Integer.parseInt(input[1]);
      int l = Integer.parseInt(input[2]);
      
      //declare matrices
      long[][] matrix_1 = new long[n][m];
      long[][] matrix_2 = new long[m][l];
      long[][] answer = new long[n][l];
            
      //initialize matrix_1
      for(int i = 0; i < n; i ++) {
         input = sc.nextLine().split(" ");
         for(int j = 0; j < m; j ++) {
            matrix_1[i][j] = Integer.parseInt(input[j]);
         }
      }
      
      //initialize matrix_2
      for(int i = 0; i < m; i ++) {
         input = sc.nextLine().split(" ");
         for(int j = 0; j < l; j ++) {
            matrix_2[i][j] = Integer.parseInt(input[j]);
         }
      }
      //calculation
      for(int i = 0; i < n; i ++) {
         for(int j = 0; j < l; j ++) {
            long temp = 0;
            for(int k = 0; k < m; k ++) {
               temp += matrix_1[i][k] * matrix_2[k][j];
            }
            answer[i][j] = temp;
         }
      }
      
      //print out
      for(int i = 0; i < n; i ++) {
         String output = "";
         for(int j = 0; j < l; j ++) {
            output += answer[i][j] + " ";
         }
         System.out.println(output.trim());
      }
      
   }
}
