/*
TASK:mushroom
LANG:C++
*/
#include <iostream>
#include <stdio.h>
using namespace std;
int dni[1000], g[200][200], n, m, d, s, neighbour[10];
int sased(int p, int k)
{
    if (( p + 1 < n )&&(g[p+1][k] == 1))
    {
         s++;
         neighbour[6] = 1;
    }
    if (( k + 1 < m )&&(g[p][k+1] == 1))
    {
         s++;
         neighbour[0] = 1;
    }
    if (( k - 1 >= 0 )&&(g[p][k-1] == 1))
    {
         s++;
         neighbour[4] = 1;
    }
    if (( p - 1 >= 0 )&&(g[p-1][k] == 1))
    {
         s++;
         neighbour[2] = 1;
    }
    if (( p - 1 >= 0 )&&(k-1 >= 0)&&(g[p-1][k-1] == 1))
    {
          s++;
         neighbour[3] = 1;
    }
    if (( p - 1 >= 0 )&&( k + 1 < m)&&(g[p-1][k+1] == 1))
    {
          s++;
         neighbour[1] = 1;
    }
    if (( p + 1 < n )&&(k - 1 >= 0)&&(g[p+1][k-1] == 1))
    {
          s++;
         neighbour[5] = 1;
    }
    if (( p + 1 < n )&&(k + 1 < m )&&(g[p+1][k+1] == 1))
    {
          s++;
         neighbour[7] = 1;
    }
    return s;
}
int main()
{
    int i, j;
    char c;
    cin >> n >> m >> d;
    for( i = 0; i < n; i++)
         for( j = 0; j < m; j++)
         {
             cin.get(c);
             if( c == 0)
                 g[i][j] = 0;
             else 
                  g[i][j] = 1;
         }
    for ( i = 0; i < d; i++ )
        cin >> dni[i];
    for (int den = 1; den < d; den++)
    {
        for( i = 0; i < n; i++)
        {
             for( j = 0; j < m; j++)
             {
                  if (( dni[m-1] == dni[m])&&( sased(i, j) > 2))
                  {
                        g[i][j] == 0;
                  }
                  for ( int t = 0; t < 10; t++ )
                  {
                        neighbour[t] = 0;
                  }
                  if ((dni[m-1] == 1)&&(dni[m] == 0)&&(sased(i, j) < 5))
                  {
                        if ( neighbour[0] == 0)
                           g[i][j+1] = 1;   
                        if ( neighbour[1] == 0)
                           g[i-1][j+1] = 1;
                        if ( neighbour[2] == 0)
                           g[i-1][j] = 1;
                        if ( neighbour[3] == 0)
                           g[i-1][j-1] = 1;
                        if ( neighbour[4] == 0)
                           g[i][j-1] = 1;
                        if ( neighbour[5] == 0)
                           g[i+1][j-1] = 1;
                        if ( neighbour[6] == 0)
                           g[i+1][j] = 1;
                        if ( neighbour[7] == 0)
                           g[i+1][j+1] = 1;
                  }
             }
        }
    }
    cout << endl;
    for( i = 0; i < n; i++)
    {
         for( j = 0; j < m; j++)
             cout << g[i][j]<<" ";
         cout << endl;
    }
    system("pause");
    return 0;
}
