# include <stdio.h>
int main()
{
int R,C,M,temp;
scanf("%d%d%d", &R, &C, &M);
int arr[10][10];
int list[10][10];
for (int x=0;x<R;++x){ // x,y為arr的位置
for (int y=0;y<C;++y){
scanf("%d", &arr[x][y]);
}
}
int data[10];
for (int i=0;i<M;++i){ // i : data數列中的代號位置
scanf("%d", &data[i]);
}
for (int i=0;i<M;++i){ // i : data數列中的代號位置
if (data[i]==1){
for (int p=0,a=R--;p<R && a>=0;++p,--a){
for (int q=0,b=0;q<C && b<C;++q,++b){
list[a][b]=arr[p][q];
arr[p][q]=list[a][b];
}
}
}
else if (data[i]==0){
for (int f=R--;f>=0;--f){
for (int g=0;g<C;++g){
int u=R--;
list[f][g]=arr[g][u=u-f];
arr[g][u=u-f]=list[f][g];
}
}
temp=R;
R=C;
C=temp;
}
}
printf("%d %d\n", R,C);
for (int col=0;col<R;++col){
for (int row=0;row<C;++row){
printf("%d ", list[col][row]);
}
printf("\n");
}
return 0;
}