#include<bits/stdc++.h>
int ax,ay,n,stt=1;
char s;
bool b[110][110];
char c[110][110];
int a[7]={'y','i','z','h','o','n','g'};
int dx[9]={0,0,-1,1,1,-1,1,-1};
int dy[9]={-1,1,0,0,-1,1,1,-1};
struct node{
int m,n;
}st[30];
int dfs(int x,int y,int way,int num)
{
if(c[x][y]==a[num] && a[num]=='g')
return 1;
else if(c[x][y]==a[num])
return (dfs(x+dx[way],y+dy[way],way,num+1));
else
return 2;
}
int main()
{
std::cin>>n;
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
{
std::cin>>s;
c[i][j]=s;
if(s=='y')
{
st[stt].m=i;
st[stt].n=j;
stt++;
}
}
}
for(int i=1;i<=n;i++)
{
for(int j=0;j<=7;j++)
{
ax=st[i].m+dx[j];
ay=st[i].n+dy[j];
if(ax>=1 && ay>=1 && ax<=n &&ay<=n)
{
if(dfs(ax,ay,j,1)==1)
{
b[st[i].m][st[i].n]=1;
b[ax][ay]=1;
for(int k=1;k<=5;k++)
{
ax+=dx[j];
ay+=dy[j];
b[ax][ay]=1;
}
}
}
}
}
for(int i=1;i<=n;i++)
{
for(int j=1;j<=n;j++)
{
if(b[i][j]==1)
std::cout<<c[i][j];
else
std::cout<<"*";
}
std::cout<<"\n";
}
return 0;
}