#include <iostream>
#include <vector>
using namespace std;
void makearray(vector<vector<int>> &array2,vector<int> &tempa,int c);
void swap(int &a,int &b);
void rotate(vector<vector<int>> &array,vector<vector<int>> &array2);
void reverse(vector<vector<int>> &array);
void output(vector<vector<int>> array);
int main(void) {
int r,c,m,temp;
cin>>r>>c>>m;
int motion[m];
vector<int> tempa;
vector<vector<int>> array;
vector<vector<int>> array2;
vector<vector<int>> array3;
//input array
for (int i=0; i<r; i++) {
for (int i2=0; i2<c; i2++) {
cin>>temp;
tempa.push_back(temp);
}
array.push_back(tempa);
tempa.clear();
}
//make another array
if (r>c) {
makearray(array2,tempa,r);
} else {
makearray(array2,tempa,c);
}
array3 = array2;
//input motion command
for (int i=0; i<m; i++) {
cin>>motion[i];
}
//main
for (int i=m; i>0; i--) {
if (motion[i-1]==0) {
array2 = array3;
rotate(array,array2);
} else {
reverse(array);
}
}
//確認長寬
int a = array[0].size();
int b = array.size();
for (int i=0; i<array[0].size(); i++) {
if (array[0][i]==10) {
a = a-1;
}
}
for (int i=0; i<array.size(); i++) {
if (array[i][0]==10) {
b = b-1;
}
}
cout<<b<<" "<<a<<endl;
output(array);
return 0;
}
//function
void makearray(vector<vector<int>> &array2,vector<int> &tempa,int c) {
for (int i=0; i<c+1; i++) {
for (int i2=0; i2<c+1; i2++) {
tempa.push_back(10);
}
array2.push_back(tempa);
tempa.clear();
}
}
void swap(int &a,int &b) {
int temp;
temp = b;
b = a;
a = temp;
}
void rotate(vector<vector<int>> &array,vector<vector<int>> &array2) {
int temp = array[0].size()-1;
for (int i=0; i<array[0].size(); i++) {
for (int i2=0; i2<array.size(); i2++) {
swap(array[i2][temp],array2[i][i2]);
}
temp=temp-1;
}
swap(array,array2);
}
void reverse(vector<vector<int>> &array) {
int h = array.size();
if (h%2==0) {
h = h-1;
for (int i=0; i<array.size()/2; i++) {
for (int i2=0; i2<array[0].size(); i2++) {
swap(array[i][i2],array[h][i2]);
}
h = h-1;
}
} else {
h = array.size()-1;
for (int i=0; i<(array.size()+1)/2; i++) {
for (int i2=0; i2<array[0].size(); i2++) {
swap(array[i][i2],array[h][i2]);
}
h = h-1;
}
}
}
void output(vector<vector<int>> array) {
for (int i=0; i<array.size(); i++) {
for (int i2=1; i2<=array[0].size(); i2++) {
if (array[i][i2-1]!=10) {
cout<<array[i][i2-1];
}
if (i2 == array[0].size() || array[i][i2] == 10) {
break;
}
cout<<" ";
}
cout<<""<<endl;
}
}