import std.algorithm, std.array, std.container, std.range, std.bitmanip;
import std.numeric, std.math, std.bigint, std.random, core.bitop;
import std.string, std.regex, std.conv, std.stdio, std.typecons;

void main()
{
  auto rd = readln.split.map!(to!size_t);
  auto n = rd[0], m = rd[1], l = rd[2];
  auto aij = iota(n).map!(_ => readln.split.map!(to!long)).array;
  auto bij = iota(m).map!(_ => readln.split.map!(to!long)).array;

  auto cij = new long[][](n, l);
  foreach (i; 0..n)
    foreach (j; 0..l)
      cij[i][j] = iota(m).map!(k => aij[i][k] * bij[k][j]).sum;

  cij.each!(ci => ci.map!(to!string).join(" ").writeln);
}