#include <iostream>
#include <cstdio>
#include <string>
#include <algorithm>

using namespace std;

/**
 * 矩阵维数
 */
const int DIMENSION = 3;

/**
 * 矩阵
 */
struct Matrix {
    int row;    //矩阵的行
    int col;    //矩阵的列
    int matrix[DIMENSION][DIMENSION];     //二维数组模拟矩阵

    //构造函数
    Matrix(int row, int col) {
        this->row = row;
        this->col = col;
    }
};


/**
 * 矩阵乘法
 * @param x
 * @param y
 * @return
 */
Matrix multiply(Matrix x, Matrix y);

/**
 * 打印矩阵
 * @param x
 */
void printMatrix(Matrix x);

/**
 * 矩阵操作
 * @return
 */
int main() {
    Matrix x = Matrix(2, 3);
    Matrix y = Matrix(3, 2);
    for (int i = 0; i < 2; ++i) {
        for (int j = 0; j < 3; ++j) {
            cin >> x.matrix[i][j];
        }
    }
    for (int i = 0; i < 3; ++i) {
        for (int j = 0; j < 2; ++j) {
            cin >> y.matrix[i][j];
        }
    }
    Matrix ans = multiply(x, y);
    printMatrix(ans);

    return 0;
}


Matrix multiply(Matrix x, Matrix y) {
    //矩阵乘法结果是x的行和y的列
    Matrix ans(x.row, y.col);
    for (int i = 0; i < ans.row; ++i) {
        for (int j = 0; j < ans.col; ++j) {
            //先初始化为0
            ans.matrix[i][j] = 0;
            /*
             * 根据矩阵相乘的规则
             * matrix[i][j] = x的第i行与y的第j列对应的乘积和
             */
            for (int k = 0; k < x.col; ++k) {
                ans.matrix[i][j] += x.matrix[i][k] * y.matrix[k][j];
            }
        }
    }
    return ans;
}

void printMatrix(Matrix x) {
    for (int i = 0; i < x.row; ++i) {
        for (int j = 0; j < x.col; ++j) {
            cout << x.matrix[i][j] << " ";
        }
        cout << endl;
    }
}