//poj 1120
//sep9
#include <iostream>
using namespace std;
const int SIZE=20;
int D[SIZE+4],mat[SIZE+4][SIZE+4],sum[SIZE+4][SIZE+4];
int dx[4]={0,0,-1,1};
int dy[4]={-1,1,0,0};
char ch[4]={'.','!','X','#'};
int main()
{
int days;
scanf("%d",&days);
for(int i=0;i<16;++i)
scanf("%d",&D[i]);
for(int i=0;i<SIZE;++i)
for(int j=0;j<SIZE;++j)
scanf("%d",&mat[i][j]);
while(days--){
for(int i=0;i<SIZE;++i)
for(int j=0;j<SIZE;++j){
sum[i][j]=mat[i][j];
for(int k=0;k<4;++k){
int nx=i+dx[k];
int ny=j+dy[k];
if(nx>=SIZE||nx<0||ny>=SIZE||ny<0)
continue;
sum[i][j]+=mat[nx][ny];
}
}
for(int i=0;i<SIZE;++i)
for(int j=0;j<SIZE;++j){
mat[i][j]+=D[sum[i][j]];
mat[i][j]=max(mat[i][j],0);
mat[i][j]=min(mat[i][j],3);
}
}
for(int i=0;i<SIZE;++i){
for(int j=0;j<SIZE;++j){
printf("%c",ch[mat[i][j]]);
}
puts("");
}
return 0;
}