using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;

namespace Competitive
{
    internal class Solution
    {
        public int N, M, L;
        public void Run()
        {
            {
                var line = Input.ReadIntArray();
                N = line[0];
                M = line[1];
                L = line[2];
            }

            var m1 = new Matrix(N, M);
            var m2 = new Matrix(M, L);
            for (int r = 0; r < N; r++)
            {
                var line = Input.ReadIntArray();
                for (int c = 0; c < M; c++)
                    m1.Values[r, c] = line[c];
            }

            for (int r = 0; r < M; r++)
            {
                var line = Input.ReadIntArray();
                for (int c = 0; c < L; c++)
                    m2.Values[r, c] = line[c];
            }

            var m = m1 * m2;

            for (int r = 0; r < m.H; r++)
            {
                for (int c = 0; c < m.W; c++)
                {
                    Console.Write(m.Values[r, c]);
                    if(c < m.W - 1) Console.Write(" ");
                    else Console.WriteLine();
                }
            }

        }
    }

    // libs ----------
    class Matrix
    {
        public int H
        {
            get { return Values.GetLength(0); }
        }
        public int W
        {
            get { return Values.GetLength(1); }
        }

        public double[,] Values;

        public Matrix(int h, int w)
        {
            Values = new double[h, w];
        }

        public static Matrix operator *(Matrix m1, Matrix m2)
        {
            if (m1.W != m2.H) throw new ArgumentException();

            var m = new Matrix(m1.H, m2.W);
            var values = m.Values;
            for (int r = 0; r < m1.H; r++)
            for (int c = 0; c < m2.W; c++)
            for (int i = 0; i < m1.W; i++)
            {
                values[r, c] += m1.Values[r, i] * m2.Values[i, c];
            }

            return m;
        }

    }

    // common ----------

    internal static class Input
    {
        public static string ReadString()
        {
            string line = Console.ReadLine();
            return line;
        }

        public static int ReadInt()
        {
            string line = Console.ReadLine();
            return int.Parse(line);
        }

        public static int[] ReadIntArray()
        {
            string line = Console.ReadLine();
            return line.Split(' ').Select(int.Parse).ToArray();            
        }

        public static long ReadLong()
        {
            string line = Console.ReadLine();
            return long.Parse(line);
        }

        public static long[] ReadLongArray()
        {
            string line = Console.ReadLine();
            return line.Split(' ').Select(long.Parse).ToArray();
        }

        public static double[] ReadDoubleArray()
        {
            string line = Console.ReadLine();
            return line.Split(' ').Select(double.Parse).ToArray();
        }
    }
    
    internal class Program
    {
        public static void Main(string[] args)
        {
            var s = new Solution();
            s.Run();
        }
    }
}


Measured memory_bytes: 10044