#include <iomanip>
#include <iostream>
#include<algorithm>
#include <math.h>
#include<assert.h>
#include<cmath>
#include<string>
#include<string.h>
#include <vector>
using namespace std;
int main()
{
std::ios_base::sync_with_stdio(0);
cin.tie(NULL);
cout.tie(0);
int raw1 = 0;
int col1 = 0;
int raw2 = 0;
int col2 = 0;
cin >> raw1 >> col1;
vector <vector<int>>arr1(raw1,vector<int>(col1));
for (int i = 0; i <raw1; i++)
{
for (int j = 0; j < col1; j++)
{
cin>>arr1[i][j];
}
}
cin >> raw2 >> col2;
vector<vector<int>>arr2(raw2, vector<int >(col2));
vector<vector<int>>arr3(col1, vector<int>(raw2));
for (int i = 0; i < raw2; i++)
{
for (int j = 0; j < col2; j++)
{
cin>> arr2[i][j];
}
}
for (int i = 0; i < raw1; i++)
{
for (int j = 0; j < col2; j++)
{
arr3[i][j]=0;
for (int k = 0; k < col1; k++)
arr3[i][j] += arr1[i][k] * arr2[k][j];
}
}
for (int i = 0; i < raw1; i++)
{
for (int j = 0; j < col2; j++)
{
cout << arr3[i][j] << " ";
}
cout << "\n";
}
return 0;
}
I2luY2x1ZGUgPGlvbWFuaXA+CiNpbmNsdWRlIDxpb3N0cmVhbT4KI2luY2x1ZGU8YWxnb3JpdGhtPgojaW5jbHVkZSA8bWF0aC5oPgojaW5jbHVkZTxhc3NlcnQuaD4KI2luY2x1ZGU8Y21hdGg+CiNpbmNsdWRlPHN0cmluZz4KI2luY2x1ZGU8c3RyaW5nLmg+CiNpbmNsdWRlIDx2ZWN0b3I+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CmludCBtYWluKCkKewogICAgc3RkOjppb3NfYmFzZTo6c3luY193aXRoX3N0ZGlvKDApOwogICAgY2luLnRpZShOVUxMKTsKICAgIGNvdXQudGllKDApOwogICAgaW50IHJhdzEgPSAwOwogICAgaW50IGNvbDEgPSAwOwogICAgaW50IHJhdzIgPSAwOwogICAgaW50IGNvbDIgPSAwOwogICAgY2luID4+IHJhdzEgPj4gY29sMTsKICAgIHZlY3RvciA8dmVjdG9yPGludD4+YXJyMShyYXcxLHZlY3RvcjxpbnQ+KGNvbDEpKTsKICAgCiAKICAgIAogICAgZm9yIChpbnQgaSA9IDA7IGkgPHJhdzE7IGkrKykKICAgIHsKICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IGNvbDE7IGorKykKICAgICAgICB7CiAgICAgICAgICAgY2luPj5hcnIxW2ldW2pdOwogICAgICAgIH0KICAgIH0KICAgIGNpbiA+PiByYXcyID4+IGNvbDI7CiAgICB2ZWN0b3I8dmVjdG9yPGludD4+YXJyMihyYXcyLCB2ZWN0b3I8aW50ID4oY29sMikpOwogICAgdmVjdG9yPHZlY3RvcjxpbnQ+PmFycjMoY29sMSwgdmVjdG9yPGludD4ocmF3MikpOwogICAgZm9yIChpbnQgaSA9IDA7IGkgPCByYXcyOyBpKyspCiAgICB7CiAgICAgICAgZm9yIChpbnQgaiA9IDA7IGogPCBjb2wyOyBqKyspCiAgICAgICAgewogICAgICAgICAgIGNpbj4+IGFycjJbaV1bal07CiAgICAgICAgfQogICAgfQogICAgZm9yIChpbnQgaSA9IDA7IGkgPCByYXcxOyBpKyspCiAgICB7CiAKICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IGNvbDI7IGorKykKICAgICAgICB7CiAgICAgICAgICAgICAgIGFycjNbaV1bal09MDsKICAgICAgICAgICAgZm9yIChpbnQgayA9IDA7IGsgPCBjb2wxOyBrKyspCiAgICAgICAgICAgICAgICBhcnIzW2ldW2pdICs9IGFycjFbaV1ba10gKiBhcnIyW2tdW2pdOwogCiAgICAgICAgfQogCiAgICB9CiAgICBmb3IgKGludCBpID0gMDsgaSA8IHJhdzE7IGkrKykKICAgIHsKICAgICAgICBmb3IgKGludCBqID0gMDsgaiA8IGNvbDI7IGorKykKICAgICAgICB7CiAgICAgICAgICAgIGNvdXQgPDwgYXJyM1tpXVtqXSA8PCAiICI7CiAgICAgICAgfQogICAgICAgIGNvdXQgPDwgIlxuIjsKICAgIH0KICAgCiAgICByZXR1cm4gMDsKfQo=