#include<bits/stdc++.h>
using namespace std;
const string ans = " yizhong";
int n;
vector<string> v(1);
bitset<105> bs[105];
bool dfs(int x, int y, int m, int f){
if(x < 1 or x > n or y < 1 or y > n)
return 0;
if(v[x][y] == ans[m]){
switch(m){
case 7:{
bs[x].set(y);
return 1;
}default:{
switch(f){
case 1:{
if(dfs(x - 1, y - 1, m + 1, 1)){
bs[x].set(y);
return 1;
}return 0;
}case 2:{
if(dfs(x - 1, y, m + 1, 2)){
bs[x].set(y);
return 1;
}return 0;
}case 3:{
if(dfs(x - 1, y + 1, m + 1, 3)){
bs[x].set(y);
return 1;
}return 0;
}case 4:{
if(dfs(x, y - 1, m + 1, 4)){
bs[x].set(y);
return 1;
}return 0;
}case 6:{
if(dfs(x, y + 1, m + 1, 6)){
bs[x].set(y);
return 1;
}return 0;
}case 7:{
if(dfs(x + 1, y - 1, m + 1, 7)){
bs[x].set(y);
return 1;
}return 0;
}case 8:{
if(dfs(x + 1, y, m + 1, 8)){
bs[x].set(y);
return 1;
}return 0;
}case 9:{
if(dfs(x + 1, y + 1, m + 1, 9)){
bs[x].set(y);
return 1;
}return 0;
}case 5:{
if(dfs(x - 1, y - 1, m + 1, 1))
bs[x].set(y);
if(dfs(x - 1, y, m + 1, 2))
bs[x].set(y);
if(dfs(x - 1, y + 1, m + 1, 3))
bs[x].set(y);
if(dfs(x, y - 1, m + 1, 4))
bs[x].set(y);
if(dfs(x, y + 1, m + 1, 6))
bs[x].set(y);
if(dfs(x + 1, y - 1, m + 1, 7))
bs[x].set(y);
if(dfs(x + 1, y, m + 1, 8))
bs[x].set(y);
if(dfs(x + 1, y + 1, m + 1, 9))
bs[x].set(y);
break;
}
}
}
}
}return 0;
}signed main(){
scanf("%d", &n);
for(int i = 1; i <= n; ++i){
string s;
for(int i = 0; i <= n; ++i)
s.push_back(getchar());
v.push_back(s);
}for(int i = 1; i <= n; ++i){
for(int j = 1; j <= n; ++j)
dfs(i, j, 1, 5);
}for(int i = 1; i <= n; ++i){
for(int j = 1; j <= n; ++j){
if(bs[i][j])
putchar(v[i][j]);
else
printf("*");
}printf("\n");
}return 0;
}