const rl = require("readline").createInterface({ input: process.stdin });
var iter = rl[Symbol.asyncIterator]();
const readline = async () => (await iter.next()).value;
void async function () {
// Write your code here
let firRow = await readline()
let RowAndCol = await readline()
let senCol = await readline()
let matrix1 = []
let matrix2 = []
let res = Array.from({ length: firRow }, () => Array.from({ length: senCol }, () => 0));
for(let q=0; q<firRow; q++) {
let tempRow = await readline()
matrix1.push(tempRow.split(" ").map(Number))
}
for(let l=0; l<RowAndCol; l++) {
let tempRow = await readline()
matrix2.push(tempRow.split(" ").map(Number))
}
for (let i = 0; i < firRow; i++) {
for (let j = 0; j < senCol; j++) {
for (let k = 0; k < RowAndCol; k++) {
res[i][j] += matrix1[i][k] * matrix2[k][j];
}
}
}
res.forEach((item) => {
let str = ''
item.forEach((i) => {
str += i + " "
})
console.log(str)
})
}()