import java.io.*;

class Main{
  public static void main(String[] args) throws IOException{
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    String str1 = br.readLine();
    String[] str2 = str1.split(" ");
    int n = Integer.parseInt(str2[0]);
    int m = Integer.parseInt(str2[1]);
    int l = Integer.parseInt(str2[2]);

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

    for (int i = 0; i < n; i++){
      String[] str3 = br.readLine().split(" ");
      for(int j = 0; j < m; j++){
        matrixA[i][j] = Integer.parseInt(str3[j]);
      }
    }
    for (int i = 0; i < m; i++){
      String[] str4 = br.readLine().split(" ");
      for(int j = 0; j < l; j++){
        matrixB[i][j] = Integer.parseInt(str4[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]);
        }
      }
    }
    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(" ");
      }
        sb.append("\n");
    }
    System.out.print(sb);
  }
} import java.io.*; io.* java class Main{
  public static void main(String[] args) throws IOException{
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    String str1 = br.readLine();
    String[] str2 = str1.split(" ");
    int n = Integer.parseInt(str2[0]);
    int m = Integer.parseInt(str2[1]);
    int l = Integer.parseInt(str2[2]);

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

    for (int i = 0; i < n; i++){
      String[] str3 = br.readLine().split(" ");
      for(int j = 0; j < m; j++){
        matrixA[i][j] = Integer.parseInt(str3[j]);
      }
    }
    for (int i = 0; i < m; i++){
      String[] str4 = br.readLine().split(" ");
      for(int j = 0; j < l; j++){
        matrixB[i][j] = Integer.parseInt(str4[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]);
        }
      }
    }
    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(" ");
      }
        sb.append("\n");
    }
    System.out.print(sb);
  }
} Main public static void main(String[] args) throws IOException{
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    String str1 = br.readLine();
    String[] str2 = str1.split(" ");
    int n = Integer.parseInt(str2[0]);
    int m = Integer.parseInt(str2[1]);
    int l = Integer.parseInt(str2[2]);

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

    for (int i = 0; i < n; i++){
      String[] str3 = br.readLine().split(" ");
      for(int j = 0; j < m; j++){
        matrixA[i][j] = Integer.parseInt(str3[j]);
      }
    }
    for (int i = 0; i < m; i++){
      String[] str4 = br.readLine().split(" ");
      for(int j = 0; j < l; j++){
        matrixB[i][j] = Integer.parseInt(str4[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]);
        }
      }
    }
    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(" ");
      }
        sb.append("\n");
    }
    System.out.print(sb);
  } main {
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    String str1 = br.readLine();
    String[] str2 = str1.split(" ");
    int n = Integer.parseInt(str2[0]);
    int m = Integer.parseInt(str2[1]);
    int l = Integer.parseInt(str2[2]);

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

    for (int i = 0; i < n; i++){
      String[] str3 = br.readLine().split(" ");
      for(int j = 0; j < m; j++){
        matrixA[i][j] = Integer.parseInt(str3[j]);
      }
    }
    for (int i = 0; i < m; i++){
      String[] str4 = br.readLine().split(" ");
      for(int j = 0; j < l; j++){
        matrixB[i][j] = Integer.parseInt(str4[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]);
        }
      }
    }
    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(" ");
      }
        sb.append("\n");
    }
    System.out.print(sb);
  } BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); br new BufferedReader(new InputStreamReader(System.in)) String str1 = br.readLine(); str1 br.readLine() br.readLine br String[] str2 = str1.split(" "); str2 str1.split(" ") str1.split str1 " " int n = Integer.parseInt(str2[0]); n Integer.parseInt(str2[0]) Integer.parseInt Integer str2[0] str2 0 int m = Integer.parseInt(str2[1]); m Integer.parseInt(str2[1]) Integer.parseInt Integer str2[1] str2 1 int l = Integer.parseInt(str2[2]); l Integer.parseInt(str2[2]) Integer.parseInt Integer str2[2] str2 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[] str3 = br.readLine().split(" ");
      for(int j = 0; j < m; j++){
        matrixA[i][j] = Integer.parseInt(str3[j]);
      }
    } int i = 0; int i = 0; i 0 i < n i n i++ i++ i {
      String[] str3 = br.readLine().split(" ");
      for(int j = 0; j < m; j++){
        matrixA[i][j] = Integer.parseInt(str3[j]);
      }
    } {
      String[] str3 = br.readLine().split(" ");
      for(int j = 0; j < m; j++){
        matrixA[i][j] = Integer.parseInt(str3[j]);
      }
    } String[] str3 = br.readLine().split(" "); str3 br.readLine().split(" ") br.readLine().split br.readLine() br.readLine br " " for(int j = 0; j < m; j++){
        matrixA[i][j] = Integer.parseInt(str3[j]);
      } int j = 0; int j = 0; j 0 j < m j m j++ j++ j {
        matrixA[i][j] = Integer.parseInt(str3[j]);
      } {
        matrixA[i][j] = Integer.parseInt(str3[j]);
      } matrixA[i][j] = Integer.parseInt(str3[j]) matrixA[i][j] matrixA[i] matrixA i j Integer.parseInt(str3[j]) Integer.parseInt Integer str3[j] str3 j for (int i = 0; i < m; i++){
      String[] str4 = br.readLine().split(" ");
      for(int j = 0; j < l; j++){
        matrixB[i][j] = Integer.parseInt(str4[j]);
      }
    } int i = 0; int i = 0; i 0 i < m i m i++ i++ i {
      String[] str4 = br.readLine().split(" ");
      for(int j = 0; j < l; j++){
        matrixB[i][j] = Integer.parseInt(str4[j]);
      }
    } {
      String[] str4 = br.readLine().split(" ");
      for(int j = 0; j < l; j++){
        matrixB[i][j] = Integer.parseInt(str4[j]);
      }
    } String[] str4 = br.readLine().split(" "); str4 br.readLine().split(" ") br.readLine().split br.readLine() br.readLine br " " for(int j = 0; j < l; j++){
        matrixB[i][j] = Integer.parseInt(str4[j]);
      } int j = 0; int j = 0; j 0 j < l j l j++ j++ j {
        matrixB[i][j] = Integer.parseInt(str4[j]);
      } {
        matrixB[i][j] = Integer.parseInt(str4[j]);
      } matrixB[i][j] = Integer.parseInt(str4[j]) matrixB[i][j] matrixB[i] matrixB i j Integer.parseInt(str4[j]) Integer.parseInt Integer str4[j] str4 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(" ");
      }
        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(" ");
      }
        sb.append("\n");
    } {
      for (int j = 0; j < l; j++){
        sb.append(matrixC[i][j]);
        if(j < l - 1)
          sb.append(" ");
      }
        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 " " sb.append("\n") sb.append sb "\n" System.out.print(sb) System.out.print System.out System System.out sb String[] args args
import java.io.*;

class Main{
  public static void main(String[] args) throws IOException{
    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));
    String str1 = br.readLine();
    String[] str2 = str1.split(" ");
    int n = Integer.parseInt(str2[0]);
    int m = Integer.parseInt(str2[1]);
    int l = Integer.parseInt(str2[2]);

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

    for (int i = 0; i < n; i++){
      String[] str3 = br.readLine().split(" ");
      for(int j = 0; j < m; j++){
        matrixA[i][j] = Integer.parseInt(str3[j]);
      }
    }
    for (int i = 0; i < m; i++){
      String[] str4 = br.readLine().split(" ");
      for(int j = 0; j < l; j++){
        matrixB[i][j] = Integer.parseInt(str4[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]);
        }
      }
    }
    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(" ");
      }
        sb.append("\n");
    }
    System.out.print(sb);
  }
}