#include <stdio.h>
int main(void)
{
// w:模具数 s:工序数 x:平均宽度 y:固定切割高度
int w, s, x, y;
scanf("%d %d", &w, &s);
scanf("%d %d", &x, &y);
short list[10000][100], dig[100] = {0};
for (int i = 0; i < w; ++i) {
for (int j = 0; j < x; ++j) {
scanf("%hd", list[i] + j);
}
}
for (int i = 0; i < s; ++i) {
for (int j = 0; j < x; ++j) {
short n;
scanf("%hd", &n);
dig[j] = n > dig[j] ? n : dig[j];
}
}
for (int i = 0; i < w; ++i) {
for (int j = 0; j < x; ++j) {
printf("%hd ", list[i][j] < (y - dig[j]) ? list[i][j] : y - dig[j]);
// 输出MIN{木条长度, 固定高度-加工深度}
}
printf("\n");
}
}