
import std.stdio;
import std.range;
import std.conv;
import std.algorithm;
import std.array;
import std.string;


void main()
{
    int n, m, l;
    readf("%d %d %d\n", &n, &m, &l);
    int[][] A = new int[][n];
    int[][] B = new int[][m];
    for (int i = 0; i < n; i++)
    {
        A[i] = readln.strip.split(' ').map!(to!int).array;
    }
    for (int i = 0; i < m; i++)
    {
        B[i] = readln.strip.split(' ').map!(to!int).array;
    }
        for (int j = 0; j < n; j++)
    {
        auto a = new int[l];
    for (int i = 0; i < l; i++)
        {
            for (int k = 0; k < m; k++)
            {
                a[i] += A[j][k] * B[k][i];
            }
        }
        writeln(a.map!(to!string).join(" "));
    }
}

