#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;
}
}