#include <iostream> #include <cstring> using namespace std ; const int maxx = 30 + 10 ; const int maxy = 80 + 10 ; struct Node { int x ; int y ; } node1 , node2 ; int r ; int bx ; int by ; char map[maxx][maxy] ; bool visit[maxx][maxy] ; int dx[] = { -1 , 1 , 0 , 0 } ; int dy[] = { 0 , 0 , -1 , 1 } ; void init() { r = 0 ; bx = 0 ; by = 0 ; memset( map , 0 , sizeof( map ) ) ; memset( visit , false , sizeof( visit ) ) ; return ; } bool is_ok( int x , int y ) { if( x >= 0 && x < r && y >= 0 && y < strlen(map[x]) && map[x][y] == ' ' && !visit[x][y]) return true ; return false ; } void dfs( int x , int y ) { visit[x][y] = true ; map[x][y] = '#' ; for( int i = 0 ; i < 4 ; i++ ) { int nx = x + dx[i] ; int ny = y + dy[i] ; if( is_ok( nx , ny ) ) dfs( nx , ny ) ; } } int main() { int ncase ; cin >> ncase ; getchar() ; while( ncase-- ) { init() ; while( 1 ) { gets( map[r] ) ; if( map[r][0] == '_' ) break ; r++ ; } for( int i = 0 ; i < r ; i++ ) for( int j = 0 ; j < strlen( map[i] ) ; j++ ) { if( map[i][j] == '*' ) { bx = i ; by = j ; break ; } } map[bx][by] = '#'; dfs( bx , by ) ; for( int i = 0 ; i <= r ; i++ ) cout << map[i] << endl ; } return 0 ; }