/*
TASK:mushroom
LANG:C++
*/
#include <iostream>
using namespace std;
int n, m, d, gabi[202][202], k, l, p, i, j;
char s[201];
void inp()
 {
  for(i=1; i<=n; i++)
   {
    cin>>s;
    for(j=0; j<=m; j++) gabi[i][j+1]=s[j]-'0';
   }
 }
void populate(int x, int y)
 {
  int r=0;
  if(gabi[x-1][y]==0) { gabi[x-1][y]=1; r++; }
  cout<<"POP: r="<<r<<"\n";
  if(gabi[x-1][y-1]==0) { gabi[x-1][y-1]=1; r++; }
  cout<<"POP: r="<<r<<"\n";
  if(gabi[x][y-1]==0) { gabi[x][y-1]=1; r++; }
  cout<<"POP: r="<<r<<"\n";
  if(gabi[x+1][y-1]==0 && r<=2) { gabi[x+1][y-1]=1; r++; }
  cout<<"POP: r="<<r<<"\n";
  if(gabi[x+1][y]==0 && r<=2) { gabi[x+1][y]=1; r++; }
  cout<<"POP: r="<<r<<"\n";
  if(gabi[x+1][y+1]==0 && r<=2) { gabi[x+1][y+1]=1; r++; }
  cout<<"POP: r="<<r<<"\n";
  if(gabi[x][y+1]==0 && r<=2) { gabi[x][y+1]=1; r++; }
  cout<<"POP: r="<<r<<"\n";
  if(gabi[x-1][y+1]==0 && r<=2) { gabi[x-1][y+1]=1; r++; }
  cout<<"POP: r="<<r<<"\n";
 }
void die(int x, int y)
 {
  int r=0;
  if(gabi[x-1][y]==1) r++;
  if(gabi[x-1][y-1]==1) r++;
  if(gabi[x][y-1]==1) r++;
  if(gabi[x+1][y-1]==1) r++;
  if(gabi[x+1][y]==1) r++;
  if(gabi[x+1][y+1]==1) r++;
  if(gabi[x][y+1]==0) r++;
  if(gabi[x-1][y+1]==1) r++;
  if(r>=3) gabi[x][y]=0;
 }
void cycle()
 {
  cin>>p;
  for(i=2; i<=d; i++)
   {
    cin>>k;
    if(p==1 && k==0)
     for(j=1; j<=n; j++) for(l=1; l<=m; l++) { cout<<"CALL POP: j="<<j<<";l="<<l<<";\n"; if(gabi[j][l]==1) populate(j, l); }
    if(p==k)
     for(j=1; j<=n; j++) for(l=1; l<=m; l++) { cout<<"CALL DIE: j="<<j<<";l="<<l<<";\n"; if(gabi[j][l]==1) die(j, l); }
    p=k; 
   }
 }
void out()
 {
  for(i=1; i<=n; i++) { for(j=1; j<=m; j++) cout<<gabi[i][j]; cout<<'\n'; }
 }
void empt()
 {
  for(i=0; i<=201; i++) { for(j=0; j<=201; j++) gabi[i][j]=-1; }
 }
int main()
 {
  cin>>n>>m>>d;
  empt();
  //out();
  inp();
  //out();
  cycle();
  out();
  return 0;
 }
