#include<iostream>
#include<cmath>
#include<cstring>
using namespace std;
long long draw[1001][1001];
long long PIC[1001][1001];
struct picture{
long long x1,y1,x2,y2,p,xK,yK;
}stick[1001];
long long n,m,c,k,X,Y,t;
int main(){
#define int long long
cin>>n>>m>>c>>k;
for(long long i=1;i<=k;i++){
cin>>stick[i].x1>>stick[i].y1>>stick[i].x2>>stick[i].y2>>stick[i].p>>stick[i].xK>>stick[i].yK;
}
for(int i=1;i<=c;i++){
for(int j=1;j<=c;j++){
cin>>PIC[i][j];
}
}
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
draw[i][j]=-1;
}
}
for(int i=1;i<=k;i++){
for(int j=stick[i].x1;j<=stick[i].x2;j++){
for(int k=stick[i].y1;k<=stick[i].y2;k++){
X=stick[i].xK+j-stick[i].x1;
Y=stick[i].yK+k-stick[i].y1;
t=PIC[X][Y];
if(stick[i].p>stick[draw[j][k]].p){
draw[j][k]=t;
}
if(draw[j][k]==-1){
draw[j][k]=t;
}
}
}
}
for(int i=1;i<=n;i++){
for(int j=1;j<=m;j++){
cout<<draw[i][j]<<' ';
}
cout<<endl;
}
return 0;
}
月赛就没过 试一下longlong还不行 蒟蒻求救