/*
TASK:mushroom
LANG:C++
*/
#include<iostream>
using namespace std;
char a[256][256], b[256][256], kyde;
bool day[1024];
int n, m, d;
inline void init()
{
 cin>>n>>m>>d;
 for(int i=0; i<n; i++)
  for(int j=0; j<m; j++)
   cin>>a[i][j];
 for(int i=0; i<d; i++) 
  cin>>day[i];  
}
void mri(int i, int j)
{
 int br=0;
 if(kyde=='a')
 {
  if( (i-1)>=0 && a[i-1][j]=='1' ) br++;
  if( (i-1)>=0 && (j-1)>=0 && a[i-1][j-1]=='1' ) br++;
  if( (j-1)>=0 && a[i][j-1]=='1' ) br++;
  if( (i+1)<n && (j-1)>=0 && a[i+1][j-1]=='1' ) br++;
  if( (i+1)<n && a[i+1][j]=='1' ) br++;
  if( (i+1)<n && (j+1)<m && a[i+1][j+1]=='1' ) br++;
  if( (j+1)<m && a[i][j+1]=='1') br++;
  if( (i-1)>=0 && (j+1)<m && a[i-1][j+1]=='1') br++;
  if( br>3 ) b[i][j]='0';
 }
 if(kyde=='b')
 {
  if( (i-1)>=0 && b[i-1][j]=='1' ) br++;
  if( (i-1)>=0 && (j-1)>=0 && b[i-1][j-1]=='1' ) br++;
  if( (j-1)>=0 && b[i][j-1]=='1' ) br++;
  if( (i+1)<n && (j-1)>=0 && b[i+1][j-1]=='1' ) br++;
  if( (i+1)<n && b[i+1][j]=='1' ) br++;
  if( (i+1)<n && (j+1)<m && b[i+1][j+1]=='1' ) br++;
  if( (j+1)<m && b[i][j+1]=='1') br++;
  if( (i-1)>=0 && (j+1)<m && b[i-1][j+1]=='1') br++;
  if( br>3 ) a[i][j]='0';
 }
}
void zap(int i, int j)
{
 int br=0;
 if(kyde=='a')
 {
 if( (i-1)>=0 && a[i-1][j]=='0' ){ b[i-1][j]='1'; br++; if(br==3)return; }
 if( (i-1)>=0 && (j-1)>=0 && a[i-1][j-1]=='0' ) { b[i-1][j-1]='1'; br++; if(br==3)return; }
 if( (j-1)>=0 && a[i][j-1]=='0' ){ b[i][j-1]='1'; br++; if(br==3)return; }
 if( (i+1)<n && (j-1)>=0 && a[i+1][j-1]=='0' ){ b[i+1][j-1]='1'; br++; if(br==3)return; }
 if( (i+1)<n && a[i+1][j]=='0' ){b[i+1][j]='1'; br++; if(br==3)return; }
 if( (i+1)<n && (j+1)<m && a[i+1][j+1]=='0' ){b[i+1][j+1]='1'; br++; if(br==3)return; }
 if( (j+1)<m && a[i][j+1]=='0'){b[i][j+1]='1'; br++; if(br==3)return; }
 if( (i-1)>=0 && (j+1)<m && a[i-1][j+1]=='0'){b[i-1][j+1]='1'; br++; if(br==3)return;}
 }
 else
 {
 if( (i-1)>=0 && b[i-1][j]=='0' ){ a[i-1][j]='1'; br++; if(br==3)return; }
 if( (i-1)>=0 && (j-1)>=0 && b[i-1][j-1]=='0' ) { a[i-1][j-1]='1'; br++; if(br==3)return; }
 if( (j-1)>=0 && b[i][j-1]=='0' ){ a[i][j-1]='1'; br++; if(br==3)return; }
 if( (i+1)<n && (j-1)>=0 && b[i+1][j-1]=='0' ){ a[i+1][j-1]='1'; br++; if(br==3)return; }
 if( (i+1)<n && b[i+1][j]=='0' ){a[i+1][j]='1'; br++; if(br==3)return; }
 if( (i+1)<n && (j+1)<m && b[i+1][j+1]=='0' ){a[i+1][j+1]='1'; br++; if(br==3)return; }
 if( (j+1)<m && b[i][j+1]=='0'){a[i][j+1]='1'; br++; if(br==3)return; }
 if( (i-1)>=0 && (j+1)<m && b[i-1][j+1]=='0'){a[i-1][j+1]='1'; br++; if(br==3)return;}   
 }
}
void print()
{
 if(kyde=='a')
  for(int i=0; i<n; i++)
  {
   for(int j=0; j<m; j++)
    cout<<a[i][j];
   cout<<endl; 
  }
 else
  for(int i=0; i<n; i++)
  {
   for(int j=0; j<m; j++)
    cout<<b[i][j];
   cout<<endl;  
  } 
}
int main()
{
    init();
    kyde='a';
    for(int i=0; i<d-1; i++)
    {
     if( day[i]==1 && day[i+1]==0 )
     {
      if(kyde=='a')
      {
       for(int i=0; i<n; i++)
        for(int j=0; j<m; j++)
         b[i][j]=a[i][j];
       for(int i=0; i<n; i++)
        for(int j=0; j<m; j++)
         if(a[i][j]=='1') zap(i, j);
       kyde='b';  
      }
      else
      {
       for(int i=0; i<n; i++)
        for(int j=0; j<m; j++)
         a[i][j]=b[i][j];
       for(int i=0; i<n; i++)
        for(int j=0; j<m; j++)
         if(b[i][j]=='1') zap(i, j);
       kyde='a';  
      }
     }
     if( day[i]==0 && day[i+1]==1 ) continue;
     if( day[i]==day[i+1] )
     {
      if(kyde=='a')
      {
       for(int i=0; i<n; i++)
        for(int j=0; j<m; j++)
         b[i][j]=a[i][j];
       for(int i=0; i<n; i++)
        for(int j=0; j<m; j++)
         if(a[i][j]=='1') mri(i, j);
       kyde='b';  
      }
      else
      {
       for(int i=0; i<n; i++)
        for(int j=0; j<m; j++)
         a[i][j]=b[i][j];
       for(int i=0; i<n; i++)
        for(int j=0; j<m; j++)
         if(b[i][j]=='1') mri(i, j);
       kyde='a';  
      }   
     }
    }
    print();
    //system("pause");
    return 0;
}
