#include<bits/stdc++.h>
using namespace std;
char grid[103][103],ch;
bool color[103][103];
int x,y,highC,highR;
void dfs(int i,int j)
{
if(i<0||j<0||i>=highR||grid[i][j]==ch||grid[i][j]=='#')
{
return;
}
if(grid[i][j]==' ' && color[i][j]==false)
{
if(grid[i+1][j]==ch)
{
grid[i][j] = '#';
}
else if(grid[i-1][j]==ch)
{
grid[i][j] = '#';
}
else if(grid[i][j+1]==ch)
{
grid[i][j] = '#';
}
else if(grid[i][j-1]==ch)
{
grid[i][j] = '#';
}
color[i][j] = true;
dfs(i+1,j);
dfs(i-1,j);
dfs(i,j+1);
dfs(i,j-1);
}
}
int main()
{
int n,i,j,k,len;
scanf("%d",&n);
getchar();
while(n--)
{
highC=-1,i=-1;
while(gets(grid[++i]))
{
len = strlen(grid[i]);
highC = max(highC,len);
if(grid[i][0]=='_')
break;
}
bool tag = false;
for(k=0; k<i; k++)
{
for(j=0; grid[k][j]!='\0'; j++)
{
if(grid[k][j]!='*' && grid[k][j]!='_' && grid[k][j]!=' ' && grid[k][j]!='#')
{
ch = grid[k][j];
tag = true;
break;
}
}
if(tag)break;
}
for(k=0;k<i;k++)
{
for(j=0;j<=highC+2;j++)
{
if(j==(highC+2))
grid[k][j]='\0';
else if(grid[k][j]!=ch && grid[k][j]!='_' && grid[k][j]!='*')
grid[k][j] = ' ';
}
}
highR = i;
tag = false;
for(k=0; k<i; k++)
{
for(j=0; grid[k][j]!='\0'; j++)
{
if(grid[k][j]=='*')
{
grid[k][j] = ' ';
dfs(k,j);
tag = true;
break;
}
}
if(tag)break;
}
for(k=0; k<i; k++)
{
for(j=(highC+2); j>=0; j--)
{
if(grid[k][j]==ch || grid[k][j]=='#')
{
break;
}
else
grid[k][j]='\0';
}
}
for(k=0; k<=i; k++)
{
puts(grid[k]);
}
memset(grid,'\0',sizeof grid);
memset(color,false,sizeof color);
}
return 0;
}