#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
using namespace std;
using namespace __gnu_pbds;
#define rep(i,a,b) for(ll i =a; i<b;++i)
#define IOS ios::sync_with_stdio(0); cin.tie(0); cout.tie(0);
#define endl "\n"
#define pb push_back
#define F first
#define S second
#define print(a) for(auto x : a) cout << x << " "; cout << endl
#define print1(a) for(auto x : a) cout << x.F << " " << x.S << endl
#define print2(a,x,y) for(int i = x; i < y; i++) cout<< a[i]<< " "; cout << endl
#define mk(x,y) make_pair(x,y)
typedef long long int ll;
const ll N = 1e2 + 5 ;
const ll mod = 1e9 + 7 ;
ll n , m ,ans[ N] [ N] ,vis[ N] [ N] ;
char a[ 15 ] [ 15 ] ;
ll dx[ ] = { - 1 ,0 , 0 , 1 } ;
ll dy[ ] = { 0 ,- 1 , 1 , 0 } ;
ll pow_mod_m( ll a , ll n)
{
if ( ! n)
return 1 ;
ll pt = pow_mod_m( a,n/ 2 ) ;
pt * = pt ;
if ( n& 1 )
pt * = a;
return pt;
}
/*bool comp(const ll &p1, const ll &p2)
{
if(order[p1] == order[p2])
return p2 > p1;
return order[p1] > order[p2];
}*/
int main( )
{
IOS;
int ts = 1 ;
cin >> ts;
vector < pair < ll , ll> > v;
while ( ts -- )
{
memset ( vis , 0 , sizeof ( vis) ) ;
cin >> n >> m;
rep( i,1 ,n+ 1 ) rep( j,1 ,m+ 1 ) ans[ i] [ j] = mod;
rep( i,1 ,n+ 1 )
{
rep( j,1 ,m+ 1 ) { cin >> a[ i] [ j] ;
if ( a[ i] [ j] == 'B' ) ans[ i] [ j] = 0 ,v.pb ( mk( i,j) ) ;
if ( a[ i] [ j] == 'W' ) ans[ i] [ j] = - 1 ;
}
}
queue < pair < pair < ll,ll> ,ll > > q;
for ( auto u : v) q.push ( mk( u,0 ) ) , vis[ u.F ] [ u.S ] = 1 ;
while ( q.empty ( ) == false )
{
auto p = q.front ( ) ;
///cout << p.F.F << " " << p.F.S << endl;
q.pop ( ) ;
rep( i,0 ,4 )
{
if ( p.F .F + dx[ i] >= 1 and p.F .S + dy[ i] >= 1 and p.F .F + dx[ i] <= n and p.F .S + dy[ i] <= m and ! vis[ p.F .F + dx[ i] ] [ p.F .S + dy[ i] ] and a[ p.F .F + dx[ i] ] [ p.F .S + dy[ i] ] ! = 'W' )
{
auto z = mk( mk( p.F .F + dx[ i] , p.F .S + dy[ i] ) , p.S + 1 ) ;
ans[ p.F .F + dx[ i] ] [ p.F .S + dy[ i] ] = p.S + 1 ;
q.push ( z) ;
vis[ p.F .F + dx[ i] ] [ p.F .S + dy[ i] ] = 1 ;
}
else
{
ans[ p.F .F + dx[ i] ] [ p.F .S + dy[ i] ] = min( ans[ p.F .F + dx[ i] ] [ p.F .S + dy[ i] ] ,p.S + 1 ) ;
}
}
}
rep( i,1 ,n+ 1 )
{
rep( j,1 ,m+ 1 )
{
if ( ans[ i] [ j] == mod) cout << - 1 << " " ;
else cout << ans[ i] [ j] << " " ;
}
cout << endl;
}
v.clear ( ) ;
}
}
ICAgICAgICAgICAgI2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiAgICAgICAgICAgICNpbmNsdWRlIDxleHQvcGJfZHMvYXNzb2NfY29udGFpbmVyLmhwcD4KICAgICAgICAgICAgI2luY2x1ZGUgPGV4dC9wYl9kcy90cmVlX3BvbGljeS5ocHA+CiAgICAgICAgICAgIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CiAgICAgICAgICAgIHVzaW5nIG5hbWVzcGFjZSBfX2dudV9wYmRzOwogICAgICAgICAgICAjZGVmaW5lIHJlcChpLGEsYikgZm9yKGxsIGkgPWE7IGk8YjsrK2kpCiAgICAgICAgICAgICNkZWZpbmUgSU9TIGlvczo6c3luY193aXRoX3N0ZGlvKDApOyBjaW4udGllKDApOyBjb3V0LnRpZSgwKTsKICAgICAgICAgICAgI2RlZmluZSBlbmRsICJcbiIKICAgICAgICAgICAgI2RlZmluZSBwYiBwdXNoX2JhY2sKICAgICAgICAgICAgI2RlZmluZSBGIGZpcnN0CiAgICAgICAgICAgICNkZWZpbmUgUyBzZWNvbmQKICAgICAgICAgICAgI2RlZmluZSBwcmludChhKSAgICAgICBmb3IoYXV0byB4IDogYSkgY291dCA8PCB4IDw8ICIgIjsgY291dCA8PCBlbmRsCiAgICAgICAgICAgICNkZWZpbmUgcHJpbnQxKGEpICAgICAgZm9yKGF1dG8geCA6IGEpIGNvdXQgPDwgeC5GIDw8ICIgIiA8PCB4LlMgPDwgZW5kbAogICAgICAgICAgICAjZGVmaW5lIHByaW50MihhLHgseSkgIGZvcihpbnQgaSA9IHg7IGkgPCB5OyBpKyspIGNvdXQ8PCBhW2ldPDwgIiAiOyBjb3V0IDw8IGVuZGwKICAgICAgICAgICAgI2RlZmluZSBtayh4LHkpICBtYWtlX3BhaXIoeCx5KQogICAgICAgICAgICB0eXBlZGVmICBsb25nIGxvbmcgaW50IGxsOwogICAgICAgICAgICBjb25zdCBsbCBOID0gIDFlMisgNSA7CiAgICAgICAgICAgIGNvbnN0IGxsIG1vZCA9IDFlOSs3IDsKICAgICAgICAgICAgbGwgbiAsIG0gLGFuc1tOXVtOXSAsdmlzW05dW05dOwogICAgICAgICAgICBjaGFyIGFbMTVdWzE1XSA7CiAgICAgICAgICAgIGxsIGR4W10gPSB7IC0xICwwICwgMCwgMX07CiAgICAgICAgICAgIGxsIGR5W10gPSB7IDAgLC0xLCAxLCAwfTsKICAgIGxsIHBvd19tb2RfbShsbCBhICwgbGwgbikKICAgIHsKICAgICAgICBpZighbikKICAgICAgICAgICAgcmV0dXJuIDE7CiAgICAgICAgbGwgcHQgPSAgcG93X21vZF9tKGEsbi8yKTsKICAgICAgICBwdCAqPSBwdCA7CiAgICAgICAgaWYobiYxKQogICAgICAgICAgICBwdCAqPSBhOwogICAgICAgIHJldHVybiBwdDsKICAgIH0KCiAgICAvKmJvb2wgY29tcChjb25zdCBsbCAmcDEsIGNvbnN0IGxsICZwMikKICAgIHsKICAgICAgICBpZihvcmRlcltwMV0gPT0gb3JkZXJbcDJdKQogICAgICAgICAgICByZXR1cm4gcDIgPiBwMTsKICAgICAgICByZXR1cm4gb3JkZXJbcDFdID4gb3JkZXJbcDJdOwogICAgfSovCgoKICAgIGludCBtYWluKCkKICAgIHsKICAgICAgICAgSU9TOwogICAgICAgICBpbnQgdHMgPTE7CiAgICAgICAgIGNpbiA+PiB0czsKICAgICAgICAgdmVjdG9yIDwgcGFpciA8bGwgLCBsbD4gPiB2OwogICAgICAgICB3aGlsZSh0cyAtLSkKICAgICAgICAgewogICAgICAgICAgICBtZW1zZXQodmlzICwgMCwgc2l6ZW9mKHZpcykpOwogICAgICAgICAgICBjaW4gPj4gbiA+PiBtOwogICAgICAgICAgICByZXAoaSwxLG4rMSkgcmVwKGosMSxtKzEpIGFuc1tpXVtqXSA9IG1vZDsKICAgICAgICAgICAgcmVwKGksMSxuKzEpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIHJlcChqLDEsbSsxKSB7Y2luID4+IGFbaV1bal0gOwogICAgICAgICAgICAgICAgaWYoYVtpXVtqXSA9PSdCJykgYW5zW2ldW2pdID0gMCx2LnBiKG1rKGksaikpOwogICAgICAgICAgICAgICAgaWYoYVtpXVtqXSA9PSAnVycpIGFuc1tpXVtqXSA9IC0xOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICB9CiAgICAgICAgICAgIHF1ZXVlIDwgcGFpciA8cGFpciA8bGwsbGw+LGxsID4gPiBxOwogICAgICAgICAgICBmb3IoYXV0byB1IDogdikgcS5wdXNoKG1rKHUsMCkpICwgdmlzW3UuRl1bdS5TXSA9IDE7CgogICAgICAgICAgICB3aGlsZShxLmVtcHR5KCkgPT0gZmFsc2UpCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGF1dG8gcCA9IHEuZnJvbnQoKTsKICAgICAgICAgICAgICAgIC8vL2NvdXQgPDwgcC5GLkYgPDwgIiAiIDw8IHAuRi5TIDw8IGVuZGw7CiAgICAgICAgICAgICAgICBxLnBvcCgpOwogICAgICAgICAgICAgICAgcmVwKGksMCw0KQogICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICBpZihwLkYuRiArIGR4W2ldID49ICAxIGFuZCBwLkYuUyArIGR5W2ldID49MSBhbmQgcC5GLkYgKyBkeFtpXSA8PSAgbiBhbmQgcC5GLlMgKyBkeVtpXSA8PSBtIGFuZCAhdmlzW3AuRi5GICsgZHhbaV1dW3AuRi5TK2R5W2ldXSBhbmQgYVtwLkYuRitkeFtpXV1bcC5GLlMrZHlbaV1dICE9ICdXJyApCiAgICAgICAgICAgICAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgICAgICAgICAgICAgIGF1dG8geiA9IG1rKG1rKHAuRi5GICsgZHhbaV0gLCBwLkYuUyArIGR5W2ldICkgLCBwLlMrMSk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBhbnNbcC5GLkYrZHhbaV1dW3AuRi5TK2R5W2ldXSA9IHAuUyArIDE7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICBxLnB1c2goeik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICB2aXNbcC5GLkYgK2R4W2ldXVtwLkYuUytkeVtpXV0gPSAxOwogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICAgICAgICAgICAgewogICAgICAgICAgICAgICAgICAgICAgICAgICAgYW5zW3AuRi5GICtkeFtpXV1bcC5GLlMgKyBkeVtpXV0gPSBtaW4oYW5zW3AuRi5GICtkeFtpXV1bcC5GLlMgKyBkeVtpXV0scC5TICsgMSk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgfQogICAgICAgICAgICByZXAoaSwxLG4rMSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgcmVwKGosMSxtKzEpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgaWYoYW5zW2ldW2pdID09IG1vZCkgY291dCA8PCAtMSA8PCAiICI7CiAgICAgICAgICAgICAgICAgICAgZWxzZSBjb3V0IDw8IGFuc1tpXVtqXSA8PCAiICI7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBjb3V0IDw8IGVuZGw7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgdi5jbGVhcigpOwogICAgICAgICB9CiAgICB9Cg==