#include <iostream>
#include <cstring>
using namespace std;
int main()
{
int R,C,M,a,counter=0;
cin>>R>>C>>M;
if(R>C) a=R;
else a=C;
int B[a][a],A[a][a],c[M];
memset(B,0,sizeof(B));
memset(A,0,sizeof(A));
for(int i=0;i<R;i++)
{
for(int j=0;j<C;j++)
{
cin>>B[i][j];
}
}
for(int i=0;i<M;i++)
{
cin>>c[i];
}
for(int i=M-1;i>=0;i--)
{
if(c[i]==0)
{
for(int j=0;j<a;j++)
{
for(int k=0;k<a;k++)
{
A[a-1-k][j]=B[j][k];
}
}
for(int j=0;j<a;j++)
{
for(int k=0;k<a;k++)
{
B[j][k]=A[j][k];
}
}
counter++;
}
else
{
for(int j=0;j<a;j++)
{
for(int k=0;k<a;k++)
{
A[j][k]=B[a-1-j][k];
}
}
for(int j=0;j<a;j++)
{
for(int k=0;k<a;k++)
{
B[j][k]=A[j][k];
}
}
}
}
if(counter%2==0)
{
cout<<R<<" "<<C<<endl;
for(int i=0;i<a;i++)
{
for(int j=1;j<a;j++)
{
if(j==1)
{
cout<<B[i][j];
}
else
{
cout<<" "<<B[i][j];
}
}
cout<<endl;
}
}
else
{
cout<<C<<" "<<R<<endl;
for(int i=1;i<a;i++)
{
for(int j=0;j<a;j++)
{
if(j==0)
{
cout<<B[i][j];
}
else
{
cout<<" "<<B[i][j];
}
}
cout<<endl;
}
}
return 0;
}