#include
#include
#include
#include
int main() {
int K, L;
scanf("%d%d", &K, &L); // vnesuvanje na dimenziite od matricata
int n;
scanf("%d", &n); // dolzina na vektor
gsl_vector * vekt = gsl_vector_alloc(n + 10);
for(int i = 0; i < n; i++) {
int pom;
scanf("%d", &pom);
gsl_vector_set(vekt, i, pom);
}
int Z; // kolku treba da skokame
scanf("%d", &Z);
gsl_matrix * mat = gsl_matrix_alloc(K, L);
gsl_matrix_set_zero(mat); // site elementi na matricata na pocetok neka bidat ednakvi na 0
int mat_i = 0;
int mat_j = 0;
for(int i = 0; i < n; i += Z) {
int max_element = 0;
for(int j = 0; j < Z; j++) {
if(i + j < n) {
if(max_element < gsl_vector_get(vekt, i + j)) {
max_element = gsl_vector_get(vekt, i + j);
}
}
}
// printf("%d ", max_element);
gsl_matrix_set(mat, mat_i, mat_j, (double) max_element);
mat_j++;
if(mat_j == L) {
mat_j = 0;
mat_i++;
}
}
for(int i = 0; i < K; i++) {
for(int j = 0; j < L; j++) {
printf("%.0f ", gsl_matrix_get(mat, i, j));
}
printf("\n");
}
return 0;
}
/*
3 3
20
1 7 0 2 15 3 14 8 9 -2 -3 6 13 0 5 26 12 3 4 7
3
**/