#include<bits/stdc++.h>
using namespace std;
const double pi=3.14;
const int inf=0x3f3f3f3f;
const int NIL=-1;
int na,nb,ma,mb;
struct Matrix{
int n,m;
int matrix[1001][1001];
};
Matrix A,B,C;
Matrix matrix_mul(Matrix A,Matrix B,int MOD){
C.n=A.n;
C.m=A.m;
for (int i=1;i<=A.n;i++){
for (int j=1;j<=B.m;j++){
for (int k=1;k<=A.n;k++){
C.matrix[i][j]=0;
C.matrix[i][j]+=A.matrix[i][k]*B.matrix[k][j]%MOD;
}
}
}
return C;
}
int read()
{
int ans=0,flag=1;
char ch=getchar();
while( (ch>'9' || ch<'0') && ch!='-' ) ch=getchar();
if(ch=='-') flag=-1,ch=getchar();
while(ch>='0' && ch<='9') ans=ans*10+ch-'0',ch=getchar();
return ans*flag;
}
int main()
{
int MOD;
cin>>na>>ma>>nb>>mb>>MOD;
A.n=na;
A.m=ma;
B.n=nb;
B.m=mb;
if (na!=mb){
cout<<"Wrong Input"<<endl;
}
for (int i=1;i<=na;i++){
for (int j=1;j<=ma;j++){
A.matrix[i][j]=read();
}
}
for (int i=1;i<=nb;i++){
for (int j=1;j<=mb;j++){
B.matrix[i][j]=read();
}
}
C=matrix_mul(A,B,MOD);
for (int i=1;i<=na;i++){
for (int j=1;j<=mb;j++){
cout<<C.matrix[i][j]<<' ';
}
cout<<endl;
}
}
RT,一运行就自动结束,不能输入不能输出