import java.io.BufferedReader;
import java.io.InputStreamReader;

public class Main {
	public static void main(String[] args) throws Exception {
	    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

	    String[] line = br.readLine().split(" ");
	    int n = Integer.parseInt(line[0]);
	    int m = Integer.parseInt(line[1]);
	    int l = Integer.parseInt(line[2]);

	    // parse A
	    long[][] a = new long[n][m];
	    for (int i = 0; i < n; i++) {
	    	line = br.readLine().split(" ");
	    	for (int j = 0; j < m; j++) {
		    	a[i][j] = Integer.parseInt(line[j]);
	    	}
	    }

	    // parse B
	    long[][] b = new long[m][l];
	    for (int i = 0; i < m; i++) {
	    	line = br.readLine().split(" ");
	    	for (int j = 0; j < l; j++) {
		    	b[i][j] = Integer.parseInt(line[j]);
	    	}
	    }

	    // Calculation
	    long[][] ans = 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++) {
		    		ans[i][j] += (a[i][k] * b[k][j]);
	    		}
	    	}
	    }

	    // Display Answer
	    StringBuilder sb = new StringBuilder();
	    for (int i = 0; i < n; i++) {
	    	for (int j = 0; j < l; j++) {
	    		sb.append(ans[i][j]);
		    	if (j < l - 1) {
		    		sb.append(" ");
		    	}
	    	}
	    	sb.append("\n");
	    }
	    System.out.print(sb.toString());
	}
} import java.io.BufferedReader; BufferedReader java.io import java.io.InputStreamReader; InputStreamReader java.io public class Main {
	public static void main(String[] args) throws Exception {
	    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

	    String[] line = br.readLine().split(" ");
	    int n = Integer.parseInt(line[0]);
	    int m = Integer.parseInt(line[1]);
	    int l = Integer.parseInt(line[2]);

	    // parse A
	    long[][] a = new long[n][m];
	    for (int i = 0; i < n; i++) {
	    	line = br.readLine().split(" ");
	    	for (int j = 0; j < m; j++) {
		    	a[i][j] = Integer.parseInt(line[j]);
	    	}
	    }

	    // parse B
	    long[][] b = new long[m][l];
	    for (int i = 0; i < m; i++) {
	    	line = br.readLine().split(" ");
	    	for (int j = 0; j < l; j++) {
		    	b[i][j] = Integer.parseInt(line[j]);
	    	}
	    }

	    // Calculation
	    long[][] ans = 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++) {
		    		ans[i][j] += (a[i][k] * b[k][j]);
	    		}
	    	}
	    }

	    // Display Answer
	    StringBuilder sb = new StringBuilder();
	    for (int i = 0; i < n; i++) {
	    	for (int j = 0; j < l; j++) {
	    		sb.append(ans[i][j]);
		    	if (j < l - 1) {
		    		sb.append(" ");
		    	}
	    	}
	    	sb.append("\n");
	    }
	    System.out.print(sb.toString());
	}
} Main public static void main(String[] args) throws Exception {
	    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

	    String[] line = br.readLine().split(" ");
	    int n = Integer.parseInt(line[0]);
	    int m = Integer.parseInt(line[1]);
	    int l = Integer.parseInt(line[2]);

	    // parse A
	    long[][] a = new long[n][m];
	    for (int i = 0; i < n; i++) {
	    	line = br.readLine().split(" ");
	    	for (int j = 0; j < m; j++) {
		    	a[i][j] = Integer.parseInt(line[j]);
	    	}
	    }

	    // parse B
	    long[][] b = new long[m][l];
	    for (int i = 0; i < m; i++) {
	    	line = br.readLine().split(" ");
	    	for (int j = 0; j < l; j++) {
		    	b[i][j] = Integer.parseInt(line[j]);
	    	}
	    }

	    // Calculation
	    long[][] ans = 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++) {
		    		ans[i][j] += (a[i][k] * b[k][j]);
	    		}
	    	}
	    }

	    // Display Answer
	    StringBuilder sb = new StringBuilder();
	    for (int i = 0; i < n; i++) {
	    	for (int j = 0; j < l; j++) {
	    		sb.append(ans[i][j]);
		    	if (j < l - 1) {
		    		sb.append(" ");
		    	}
	    	}
	    	sb.append("\n");
	    }
	    System.out.print(sb.toString());
	} main {
	    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

	    String[] line = br.readLine().split(" ");
	    int n = Integer.parseInt(line[0]);
	    int m = Integer.parseInt(line[1]);
	    int l = Integer.parseInt(line[2]);

	    // parse A
	    long[][] a = new long[n][m];
	    for (int i = 0; i < n; i++) {
	    	line = br.readLine().split(" ");
	    	for (int j = 0; j < m; j++) {
		    	a[i][j] = Integer.parseInt(line[j]);
	    	}
	    }

	    // parse B
	    long[][] b = new long[m][l];
	    for (int i = 0; i < m; i++) {
	    	line = br.readLine().split(" ");
	    	for (int j = 0; j < l; j++) {
		    	b[i][j] = Integer.parseInt(line[j]);
	    	}
	    }

	    // Calculation
	    long[][] ans = 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++) {
		    		ans[i][j] += (a[i][k] * b[k][j]);
	    		}
	    	}
	    }

	    // Display Answer
	    StringBuilder sb = new StringBuilder();
	    for (int i = 0; i < n; i++) {
	    	for (int j = 0; j < l; j++) {
	    		sb.append(ans[i][j]);
		    	if (j < l - 1) {
		    		sb.append(" ");
		    	}
	    	}
	    	sb.append("\n");
	    }
	    System.out.print(sb.toString());
	} BufferedReader br = new BufferedReader(new InputStreamReader(System.in)); br new BufferedReader(new InputStreamReader(System.in)) String[] line = br.readLine().split(" "); line br.readLine().split(" ") br.readLine().split br.readLine() br.readLine br " " int n = Integer.parseInt(line[0]); n Integer.parseInt(line[0]) Integer.parseInt Integer line[0] line 0 int m = Integer.parseInt(line[1]); m Integer.parseInt(line[1]) Integer.parseInt Integer line[1] line 1 int l = Integer.parseInt(line[2]); l Integer.parseInt(line[2]) Integer.parseInt Integer line[2] line 2 long[][] a = new long[n][m]; a new long[n][m] n m for (int i = 0; i < n; i++) {
	    	line = br.readLine().split(" ");
	    	for (int j = 0; j < m; j++) {
		    	a[i][j] = Integer.parseInt(line[j]);
	    	}
	    } int i = 0; int i = 0; i 0 i < n i n i++ i++ i {
	    	line = br.readLine().split(" ");
	    	for (int j = 0; j < m; j++) {
		    	a[i][j] = Integer.parseInt(line[j]);
	    	}
	    } {
	    	line = br.readLine().split(" ");
	    	for (int j = 0; j < m; j++) {
		    	a[i][j] = Integer.parseInt(line[j]);
	    	}
	    } line = br.readLine().split(" ") line br.readLine().split(" ") br.readLine().split br.readLine() br.readLine br " " for (int j = 0; j < m; j++) {
		    	a[i][j] = Integer.parseInt(line[j]);
	    	} int j = 0; int j = 0; j 0 j < m j m j++ j++ j {
		    	a[i][j] = Integer.parseInt(line[j]);
	    	} {
		    	a[i][j] = Integer.parseInt(line[j]);
	    	} a[i][j] = Integer.parseInt(line[j]) a[i][j] a[i] a i j Integer.parseInt(line[j]) Integer.parseInt Integer line[j] line j long[][] b = new long[m][l]; b new long[m][l] m l for (int i = 0; i < m; i++) {
	    	line = br.readLine().split(" ");
	    	for (int j = 0; j < l; j++) {
		    	b[i][j] = Integer.parseInt(line[j]);
	    	}
	    } int i = 0; int i = 0; i 0 i < m i m i++ i++ i {
	    	line = br.readLine().split(" ");
	    	for (int j = 0; j < l; j++) {
		    	b[i][j] = Integer.parseInt(line[j]);
	    	}
	    } {
	    	line = br.readLine().split(" ");
	    	for (int j = 0; j < l; j++) {
		    	b[i][j] = Integer.parseInt(line[j]);
	    	}
	    } line = br.readLine().split(" ") line br.readLine().split(" ") br.readLine().split br.readLine() br.readLine br " " for (int j = 0; j < l; j++) {
		    	b[i][j] = Integer.parseInt(line[j]);
	    	} int j = 0; int j = 0; j 0 j < l j l j++ j++ j {
		    	b[i][j] = Integer.parseInt(line[j]);
	    	} {
		    	b[i][j] = Integer.parseInt(line[j]);
	    	} b[i][j] = Integer.parseInt(line[j]) b[i][j] b[i] b i j Integer.parseInt(line[j]) Integer.parseInt Integer line[j] line j long[][] ans = new long[n][l]; ans 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++) {
		    		ans[i][j] += (a[i][k] * 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++) {
		    		ans[i][j] += (a[i][k] * b[k][j]);
	    		}
	    	}
	    } {
	    	for (int j = 0; j < l; j++) {
	    		for (int k = 0; k < m; k++) {
		    		ans[i][j] += (a[i][k] * b[k][j]);
	    		}
	    	}
	    } for (int j = 0; j < l; j++) {
	    		for (int k = 0; k < m; k++) {
		    		ans[i][j] += (a[i][k] * 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++) {
		    		ans[i][j] += (a[i][k] * b[k][j]);
	    		}
	    	} {
	    		for (int k = 0; k < m; k++) {
		    		ans[i][j] += (a[i][k] * b[k][j]);
	    		}
	    	} for (int k = 0; k < m; k++) {
		    		ans[i][j] += (a[i][k] * b[k][j]);
	    		} int k = 0; int k = 0; k 0 k < m k m k++ k++ k {
		    		ans[i][j] += (a[i][k] * b[k][j]);
	    		} {
		    		ans[i][j] += (a[i][k] * b[k][j]);
	    		} ans[i][j] += (a[i][k] * b[k][j]) ans[i][j] ans[i] ans i j (a[i][k] * b[k][j]) a[i][k] a[i] a i k b[k][j] b[k] b 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(ans[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(ans[i][j]);
		    	if (j < l - 1) {
		    		sb.append(" ");
		    	}
	    	}
	    	sb.append("\n");
	    } {
	    	for (int j = 0; j < l; j++) {
	    		sb.append(ans[i][j]);
		    	if (j < l - 1) {
		    		sb.append(" ");
		    	}
	    	}
	    	sb.append("\n");
	    } for (int j = 0; j < l; j++) {
	    		sb.append(ans[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(ans[i][j]);
		    	if (j < l - 1) {
		    		sb.append(" ");
		    	}
	    	} {
	    		sb.append(ans[i][j]);
		    	if (j < l - 1) {
		    		sb.append(" ");
		    	}
	    	} sb.append(ans[i][j]) sb.append sb ans[i][j] ans[i] ans i j if (j < l - 1) {
		    		sb.append(" ");
		    	} j < l - 1 j l - 1 l 1 {
		    		sb.append(" ");
		    	} sb.append(" ") sb.append sb " " sb.append("\n") sb.append sb "\n" System.out.print(sb.toString()) System.out.print System.out System System.out sb.toString() sb.toString sb String[] args args public class Main {
	public static void main(String[] args) throws Exception {
	    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

	    String[] line = br.readLine().split(" ");
	    int n = Integer.parseInt(line[0]);
	    int m = Integer.parseInt(line[1]);
	    int l = Integer.parseInt(line[2]);

	    // parse A
	    long[][] a = new long[n][m];
	    for (int i = 0; i < n; i++) {
	    	line = br.readLine().split(" ");
	    	for (int j = 0; j < m; j++) {
		    	a[i][j] = Integer.parseInt(line[j]);
	    	}
	    }

	    // parse B
	    long[][] b = new long[m][l];
	    for (int i = 0; i < m; i++) {
	    	line = br.readLine().split(" ");
	    	for (int j = 0; j < l; j++) {
		    	b[i][j] = Integer.parseInt(line[j]);
	    	}
	    }

	    // Calculation
	    long[][] ans = 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++) {
		    		ans[i][j] += (a[i][k] * b[k][j]);
	    		}
	    	}
	    }

	    // Display Answer
	    StringBuilder sb = new StringBuilder();
	    for (int i = 0; i < n; i++) {
	    	for (int j = 0; j < l; j++) {
	    		sb.append(ans[i][j]);
		    	if (j < l - 1) {
		    		sb.append(" ");
		    	}
	    	}
	    	sb.append("\n");
	    }
	    System.out.print(sb.toString());
	}
} public class Main {
	public static void main(String[] args) throws Exception {
	    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

	    String[] line = br.readLine().split(" ");
	    int n = Integer.parseInt(line[0]);
	    int m = Integer.parseInt(line[1]);
	    int l = Integer.parseInt(line[2]);

	    // parse A
	    long[][] a = new long[n][m];
	    for (int i = 0; i < n; i++) {
	    	line = br.readLine().split(" ");
	    	for (int j = 0; j < m; j++) {
		    	a[i][j] = Integer.parseInt(line[j]);
	    	}
	    }

	    // parse B
	    long[][] b = new long[m][l];
	    for (int i = 0; i < m; i++) {
	    	line = br.readLine().split(" ");
	    	for (int j = 0; j < l; j++) {
		    	b[i][j] = Integer.parseInt(line[j]);
	    	}
	    }

	    // Calculation
	    long[][] ans = 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++) {
		    		ans[i][j] += (a[i][k] * b[k][j]);
	    		}
	    	}
	    }

	    // Display Answer
	    StringBuilder sb = new StringBuilder();
	    for (int i = 0; i < n; i++) {
	    	for (int j = 0; j < l; j++) {
	    		sb.append(ans[i][j]);
		    	if (j < l - 1) {
		    		sb.append(" ");
		    	}
	    	}
	    	sb.append("\n");
	    }
	    System.out.print(sb.toString());
	}
} Main
import java.io.BufferedReader;
import java.io.InputStreamReader;

public class Main {
	public static void main(String[] args) throws Exception {
	    BufferedReader br = new BufferedReader(new InputStreamReader(System.in));

	    String[] line = br.readLine().split(" ");
	    int n = Integer.parseInt(line[0]);
	    int m = Integer.parseInt(line[1]);
	    int l = Integer.parseInt(line[2]);

	    // parse A
	    long[][] a = new long[n][m];
	    for (int i = 0; i < n; i++) {
	    	line = br.readLine().split(" ");
	    	for (int j = 0; j < m; j++) {
		    	a[i][j] = Integer.parseInt(line[j]);
	    	}
	    }

	    // parse B
	    long[][] b = new long[m][l];
	    for (int i = 0; i < m; i++) {
	    	line = br.readLine().split(" ");
	    	for (int j = 0; j < l; j++) {
		    	b[i][j] = Integer.parseInt(line[j]);
	    	}
	    }

	    // Calculation
	    long[][] ans = 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++) {
		    		ans[i][j] += (a[i][k] * b[k][j]);
	    		}
	    	}
	    }

	    // Display Answer
	    StringBuilder sb = new StringBuilder();
	    for (int i = 0; i < n; i++) {
	    	for (int j = 0; j < l; j++) {
	    		sb.append(ans[i][j]);
		    	if (j < l - 1) {
		    		sb.append(" ");
		    	}
	    	}
	    	sb.append("\n");
	    }
	    System.out.print(sb.toString());
	}
}