from re import *
r= len
q= '(?<=[^\s ])\s +(?=[^\s ])'
T, S= '~ '
f= lambda x:'\n ' .join ( k[ :-1 ] +[ sub( S, T, w:= k[ -1 ] ) ] +[ S*j[ 0 ] +T+S*( r( w) -j[ 0 ] +1 ) for _ in range ( sum ( r( findall( q, n) [ 0 ] ) for n in k[ :-1 ] ) -w.count ( S) +( w.count ( S) == 1 ) ) ] if ( j:= ( lambda x:[ i for i in range ( r( x) ) if i and-~ i< r( x) and findall( '^(?:[^\s ]|\s )\s +$' , '' .join ( x[ i] ) ) *( Z:= lambda z:any ( d!= S for d in x[ i+z] [ 1 :] ) ) ( -1 ) *Z( 1 ) ] ) ( [ *zip ( *( k:= x.split ( '\n ' ) ) ) ] ) ) else ( sub( q, lambda x:T*r( x.group ( ) ) , l) for l in k) )
print ( f( """00 00
00 00
000 0 """ ) )
print ( f( """^^^ ^
^^ ^
^^^ ^
^ ^ """ ) )
print ( f( """@@@ @@@
@ @ """ ) )
print ( f( """# #
# # #
### #""" ) )
print ( f( """xx xx
x x
x x
xx """ ) )
print ( f( """2 2
2 2""" ) )
print ( f( """# #
# #
#### """ ) )
print ( f( """!!! !!
!! !
!!! !
!!!! """ ) )
print ( f( """4 4
4 4 4
44444""" ) )
print ( f( """ B B
B B
B B
B B
B B
BBB """ ) )
print ( f( """sss sss
s s
s s
ssssssssss""" ) )
ZnJvbSByZSBpbXBvcnQqCnI9bGVuCnE9Jyg/PD1bXlxzXSlccysoPz1bXlxzXSknClQsUz0nfiAnCmY9bGFtYmRhIHg6J1xuJy5qb2luKGtbOi0xXStbc3ViKFMsVCx3Oj1rWy0xXSldK1tTKmpbMF0rVCtTKihyKHcpLWpbMF0rMSlmb3IgXyBpbiByYW5nZShzdW0ocihmaW5kYWxsKHEsbilbMF0pZm9yIG4gaW4ga1s6LTFdKS13LmNvdW50KFMpKyh3LmNvdW50KFMpPT0xKSldaWYoajo9KGxhbWJkYSB4OltpIGZvciBpIGluIHJhbmdlKHIoeCkpaWYgaSBhbmQtfmk8cih4KWFuZCBmaW5kYWxsKCdeKD86W15cc118XHMpXHMrJCcsJycuam9pbih4W2ldKSkqKFo6PWxhbWJkYSB6OmFueShkIT1TIGZvciBkIGluIHhbaSt6XVsxOl0pKSgtMSkqWigxKV0pKFsqemlwKCooazo9eC5zcGxpdCgnXG4nKSkpXSkpZWxzZShzdWIocSxsYW1iZGEgeDpUKnIoeC5ncm91cCgpKSxsKWZvciBsIGluIGspKQoKcHJpbnQoZigiIiIwMCAgICAgMDAKIDAwICAgMDAgCiAgMDAwIDAgICIiIikpCnByaW50KGYoIiIiXl5eICAgICAgICBeCiAgIF5eICAgICAgXgogICAgIF5eXiAgIF4KICAgICAgICBeIF4gIiIiKSkKcHJpbnQoZigiIiJAQEAgQEBACiAgQCBAICAiIiIpKQpwcmludChmKCIiIiMgICAjCiMgIyAjCiMjIyAjIiIiKSkKcHJpbnQoZigiIiJ4eCB4eAp4ICAgeAp4ICAgeAogeHggICIiIikpCnByaW50KGYoIiIiMiAyCjIgMiIiIikpCnByaW50KGYoIiIiIyAgICAgICMKICMgICAgIyAKICAjIyMjICAiIiIpKQpwcmludChmKCIiIiEhISAgICAgICAgISEKICAgISEgICAgICAhIAogICAgICEhISAgICEgCiAgICAgICAgISEhISAiIiIpKQpwcmludChmKCIiIjQgICA0CjQgNCA0CjQ0NDQ0IiIiKSkKcHJpbnQoZigiIiIgIEIgQiAgCiBCICAgQiAKQiAgICAgQgpCICAgICBCCiBCICAgQiAKICBCQkIgICIiIikpCnByaW50KGYoIiIic3NzICBzc3MKICBzICBzICAKICAgcyBzICAKc3Nzc3Nzc3NzcyIiIikp