#include <iostream>
using namespace std;


struct matrix
{
    int num[3][3];
    int row,col;  //行列
};

matrix multiply(matrix x, matrix y)
{
    matrix answer;
    answer.row=x.row;
    answer.col=y.col;
    for(int i=0; i<answer.row; i++)
    {
        for(int j=0; j<answer.col; j++)
        {
            answer.num[i][j]=0;
            for(int k=0; k<x.col; k++)  //注意是小于x的列数
            {
                answer.num[i][j]+=x.num[i][k]*y.num[k][j];
            }
        }
    }
    return answer;
}

int main() {
    matrix a,b;
    a.row=2;
    a.col=3;
    b.row=3;
    b.col=2;
    for(int i=0; i<a.row; i++)
    {
        for(int j=0; j<a.col; j++)
        {
            cin >> a.num[i][j];
        }
    }
    for(int i=0; i<b.row; i++)
    {
        for(int j=0; j<b.col; j++)
        {
            cin >> b.num[i][j];
        }
    }
    matrix answer = multiply(a,b);
    for(int i=0; i<2; i++)
    {
        for(int j=0; j<2; j++)
        {
            cout << answer.num[i][j] << ' ';
        }
        cout << endl;
    }
}