#include <iostream>
#include <cstdio>
const int N = 1005;
int vis[N][N];
char d[N][N];
int fang[8][2] = {{1,0},{0,1},{1,1},{0,-1},{1,-1},{-1,0},{-1,-1},{-1,1}};
int n;
int dfs2(int x,int y,int step,int zou)
{
if(x<0||y<0||x>n||y>n) return ;
if(step > 7)
{
ranse();
}
x += fang[zou][1];
y += fang[zou][0];
if(d[x][y] != c[step]) return;
else
}
int dfs1(int x,int y,int step,int zou)
{
for(int i = 0;i < n;i++)
for(int j = 0;j < n;j++)
if(d[i][j] == 'y')
for(int k = 0;k < 8;k++)
dfs2(i,j,0,k);
}
int main()
{
scanf("%d",&n);
for(int i = 0;i < n;i++)
scanf("%s",&d[i]);
dfs1(0,0,0,0);
for(int i = 0;i < n;i++)
for(int j = 0;j < n;j++)
{
if(b[i][j] == 1)
printf("%d",d[i][j]);
else
printf("*");
}
return 0;
}
#include <cstdio>
const int N = 1005;
int vis[N][N];
char d[N][N];
int fang[8][2] = {{1,0},{0,1},{1,1},{0,-1},{1,-1},{-1,0},{-1,-1},{-1,1}};
int n;
int dfs2(int x,int y,int step,int zou)
{
if(x<0||y<0||x>n||y>n) return ;
if(step > 7)
{
ranse();
}
x += fang[zou][1];
y += fang[zou][0];
if(d[x][y] != c[step]) return;
else
}
int dfs1(int x,int y,int step,int zou)
{
for(int i = 0;i < n;i++)
for(int j = 0;j < n;j++)
if(d[i][j] == 'y')
for(int k = 0;k < 8;k++)
dfs2(i,j,0,k);
}
int main()
{
scanf("%d",&n);
for(int i = 0;i < n;i++)
scanf("%s",&d[i]);
dfs1(0,0,0,0);
for(int i = 0;i < n;i++)
for(int j = 0;j < n;j++)
{
if(b[i][j] == 1)
printf("%d",d[i][j]);
else
printf("*");
}
return 0;
}