#include <stdio.h>
#define MAX_ROWS 100
#define MAX_COLS 100
void multiplyMatrices(int m, int n, int mat1[MAX_ROWS][MAX_COLS], int p, int q for (int i = 0; i < m; i++) {
 for (int j = 0; j < q; j++) {
 result[i][j] = 0;
 for (int k = 0; k < n; k++) {
 result[i][j] += mat1[i][k] * mat2[k][j];
 }
 }
 }
}
int main() {
 int m, n, p, q;
 scanf("%d %d", &m, &n);
 int mat1[MAX_ROWS][MAX_COLS];
 for (int i = 0; i < m; i++) {
 for (int j = 0; j < n; j++) {
 scanf("%d", &mat1[i][j]);
 }
 }
 scanf("%d %d", &p, &q);
 int mat2[MAX_ROWS][MAX_COLS];
 for (int i = 0; i < p; i++) {
 for (int j = 0; j < q; j++) {
 scanf("%d", &mat2[i][j]);
 }
 }
 if (n != p) {
 printf("Invalid input\n");
 return 1;
 }
 int result[MAX_ROWS][MAX_COLS];
 multiplyMatrices(m, n, mat1, p, q, mat2, result);
 for (int i = 0; i < m; i++) {
 for (int j = 0; j < q; j++) {
 printf("%d ", result[i][j]);
 }
 printf("\n");
 }
 return 0;