/*
TASK:mushroom
LANG:C++
*/
#include<iostream>
using namespace std;
int main()
{
    int c[1024],n,m,d;
    char a[256][256];
    cin>>n>>m>>d;
    for(int i=0; i<n; i++)
    for(int j=0; j<m; j++)
    cin.get(a[i][j]);
    for(int i=0; i<d; i++)cin>>c[i];
    for(int br=1; br<d; br++)
    {
        if(c[br-1]==c[br])
        {
            for(int i=0; i<n; i++)
            for(int j=0; j<m; j++)
            if(a[i][j]=='0')continue;
            else 
            {
                int br=0;
                if((a[i-1][j]=='1' || a[i-1][j]=='2')&& (i-1)>=0)br++;
                if((a[i-1][j-1]=='1' || a[i-1][j-1]=='2')&& (i-1)>=0 && (j-1)>=0)br++;
                if((a[i][j-1]=='1' || a[i][j+1]=='2')&& (j-1)>=0)br++;
                if((a[i+1][j-1]=='1' || a[i+1][j-1]=='2')&& (i+1)<=(n-1) && (j-1)>=0)br++;
                if((a[i+1][j]=='1' || a[i+1][j]=='2')&& (i+1)<=(n-1))br++;
                if((a[i+1][j+1]=='1' || a[i+1][j+1]=='2')&& (i+1)<=(n-1) && (j+1)<=(m-1))br++;
                if((a[i][j+1]=='1' || a[i][j+1]=='2')&& (j+1)<=(m-1))br++;
                if((a[i-1][j+1]=='1' || a[i-1][j+1]=='2')&& (i-1)>=0 && (j+1)<=(m-1))br++;
                /**/if(br>3)a[i][j]='2';
            }
            for(int i=0; i<n; i++)
            for(int j=0; j<m; j++)
            if(a[i][j]=='2')a[i][j]='0';
        }
        if(c[br-1]=='0' && c[br]=='1')continue;
        if(c[br-1]=='1' && c[br]=='0')
        {
            for(int i=0; i<n; i++)
            for(int j=0; j<m; j++)
            if(a[i][j]=='0')continue;
            else 
            {
                int br=3;
                if(a[i-1][j]=='0' && (i-1)>=0){ if(br>0)a[i-1][j]=='2'; br--; }
                if(a[i-1][j]=='2' && (i-1)>=0)br--;
                if(a[i-1][j-1]=='0' && (i-1)>=0 && (j-1)>=0){ if(br>0)a[i-1][j-1]=='2'; br--; }
                if(a[i-1][j-1]=='2' && (i-1)>=0 && (j-1)>=0)br--;
                if(a[i][j-1]=='0' && (j-1)>=0){ if(br>0)a[i][j-1]=='2'; br--; }
                if(a[i][j-1]=='2' && (j-1)>=0)br--;
                if(a[i+1][j-1]=='0' && (i+1)<=(n-1) && (j-1)>=0){ if(br>0)a[i+1][j-1]=='2'; br--; }
                if(a[i+1][j-1]=='2' && (i+1)<=(n-1) && (j-1)>=0)br--;
                if(a[i+1][j]=='0' && (i+1)<=(n-1)){ if(br>0)a[i+1][j]=='2'; br--; }
                if(a[i+1][j]=='2' && (i+1)<=(n-1))br--;
                if(a[i+1][j+1]=='0' && (i+1)<=(n-1) && (j+1)<=(m-1)){ if(br>0)a[i+1][j+1]=='2'; br--; }
                if(a[i+1][j+1]=='2' && (i+1)<=(n-1) && (j+1)<=(m-1))br--;
                if(a[i][j+1]=='0' && (j+1)<=(m-1)){ if(br>0)a[i][j+1]=='2'; br--; }
                if(a[i][j+1]=='2' && (j+1)<=(m-1))br--;
                if(a[i-1][j+1]=='0' && (i-1)>=0 && (j+1)<=(m-1)){ if(br>0)a[i-1][j+1]=='2'; br--; }
                if(a[i-1][j+1]=='2' && (i-1)>=0 && (j+1)<=(m-1))br--;
            }
            for(int i=0; i<n; i++)
            for(int j=0; j<m; j++)
            if(a[i][j]=='2')a[i][j]='1';
        }
    }
    for(int i=0; i<n; i++)
    {
        for(int j=0; j<m; j++)cout<<a[i][j];
        cout<<endl;
    }
    system("pause");
    return 0;
}
    
