/*
TASK:mushroom
LANG:C++
*/
#include<iostream>
#include<string>
using namespace std;
    int n,m,d,b[1000],i,j,k;
    string a[2002];
int brsasedi(int i,int j)
{
    int br=0;
    
    {
    if(a[i-1][j-1]=='1'||a[i-1][j-1]=='*') br++; 
   if(a[i-1][j+1]=='1'||a[i-1][j+1]=='*') br++; 
   if(a[i-1][j]=='1'||a[i-1][j]=='*') br++; 
   if(a[i+1][j-1]=='1'||a[i+1][j-1]=='*') br++; 
   if(a[i+1][j+1]=='1'||a[i+1][j+1]=='*') br++; 
   if(a[i+1][j]=='1'||a[i+1][j]=='*') br++; 
   if(a[i][j+1]=='1'||a[i][j+1]=='*') br++; 
   if(a[i][j-1]=='1'||a[i][j-1]=='*') br++;}
   
    return br;
}
/******************************************************************************/
void ddss()
    {
           for(i=1;i<=n;i++){
                       for(j=0;j<m;j++)
                       {
                                       if(a[i][j]=='1'){
                        if(brsasedi(i,j)>3) a[i][j]='*';} 
                                       }
                       }
     for(i=1;i<=n;i++){
                       for(j=0;j<m;j++)
                       {
                                       if(a[i][j]=='*') a[i][j]='0';
                                       }
                                       }
          return;
          }
/******************************************************************************/
void ds()
{
     int br=0;
     for(i=1;i<=n;i++){
                       for(j=0;j<m;j++){
                                        if(a[i][j]=='1')
                                        {    br=0;
                                             if(a[i-1][j]=='0'||a[i-1][j]=='*') {a[i-1][j]='*';br++;} 
                                             if(a[i-1][j-1]=='0'||a[i-1][j-1]=='*') {a[i-1][j-1]='*';br++;} 
                                             if(a[i][j-1]=='0'||a[i][j-1]=='*') {a[i][j-1]='*';br++;} 
                                             if(a[i+1][j-1]=='0'||a[i+1][j-1]=='*') {if(br<3){a[i+1][j-1]='*';br++;}} 
                                             if(a[i+1][j]=='0'||a[i+1][j]=='*') {if(br<3){a[i+1][j]='*';br++;}} 
                                             if(a[i+1][j+1]=='0'||a[i+1][j+1]=='*') {if(br<3){a[i+1][j+1]='*';br++;}} 
                                             if(a[i][j+1]=='0'||a[i][j+1]=='*') {if(br<3){a[i][j+1]='*';br++;}} 
                                             if(a[i-1][j+1]=='0'||a[i-1][j+1]=='*') {if(br<3){a[i-1][j+1]='*';br++;}}

                                        }
                                        }
                       }     
                        for(i=1;i<=n;i++){
                       for(j=0;j<m;j++)
                       {
                                       if(a[i][j]=='*') a[i][j]='1';
                                       }
                                       }
     return;
 }
int main()
{

    
    cin>>n>>m>>d;
    for(i=1;i<=n;i++)
    cin>>a[i];
    for(i=0;i<d;i++)
    cin>>b[i];
    for(k=1;k<d;k++)
    {
                    
                    if(b[k]==b[k-1]) ddss();
                    else if(b[k]==0) {ds();}
    }
 
    for(i=1;i<=n;i++)                                  
    cout<<a[i]<<"\n";
   
    return 0;
}
