#include<bits/stdc++.h>
using namespace std;
char a[185][185];
int dp[185][185],visited[185][185];
int h,w;
int dx[] = {1,0,-1,0};
int dy[] = {0,-1,0,1};
void dfs(int x,int y)
{
if(a[x][y]=='1')
{
dp[x][y]=0;
return;
}
int temp1,temp2;
visited[x][y]=1;
for(int k=0;k<4;k++)
{
int nx = x + dx[k];
int ny = y + dy[k];
if(nx>=0&&ny>=0&&nx<h&&ny<w)
{
temp1 = dx[k];
temp2 = dy[k];
if(temp1<0)temp1=(temp1)*(-1);
if(temp2<0)temp2=(temp2)*(-1);
if(visited[nx][ny]==0)
dfs(nx,ny);
dp[x][y] = min(dp[x][y],dp[nx][ny]+temp1+temp2);
}
}
visited[x][y]=0;
}
int main()
{
int t;
cin>>t;
while(t--)
{
cin>>h>>w;
for(int i=0;i<h;i++)
cin>>a[i];
memset(visited,0,sizeof(visited));
for(int i=0;i<h;i++)
for(int j=0;j<w;j++)
dp[i][j]=100000;
for(int i=0;i<h;i++)
{
for(int j=0;j<w;j++)
{
if(dp[i][j]==100000&&a[i][j]!='1')
dfs(i,j);
}
}
for(int i=0;i<h;i++)
{
if(i!=0)
cout<<"\n";
for(int j=0;j<w;j++)
{
if(a[i][j]=='1')
cout<<"0 ";
else
cout<<dp[i][j]<<" ";
}
}
cout<<"\n";
}
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKY2hhciBhWzE4NV1bMTg1XTsKaW50IGRwWzE4NV1bMTg1XSx2aXNpdGVkWzE4NV1bMTg1XTsKaW50IGgsdzsKaW50IGR4W10gPSB7MSwwLC0xLDB9OwppbnQgZHlbXSA9IHswLC0xLDAsMX07CnZvaWQgZGZzKGludCB4LGludCB5KQp7CiAgICBpZihhW3hdW3ldPT0nMScpCiAgICB7CiAgICAgICAgZHBbeF1beV09MDsKICAgICAgICByZXR1cm47CiAgICB9CgogICAgaW50IHRlbXAxLHRlbXAyOwogICAgdmlzaXRlZFt4XVt5XT0xOwoKICAgIGZvcihpbnQgaz0wO2s8NDtrKyspCiAgICB7CiAgICAgICAgaW50IG54ID0geCArIGR4W2tdOwogICAgICAgIGludCBueSA9IHkgKyBkeVtrXTsKCiAgICAgICAgaWYobng+PTAmJm55Pj0wJiZueDxoJiZueTx3KQogICAgICAgIHsKCiAgICAgICAgCXRlbXAxID0gZHhba107CiAgICAgICAgCXRlbXAyID0gZHlba107CiAgICAgICAgCWlmKHRlbXAxPDApdGVtcDE9KHRlbXAxKSooLTEpOwogICAgICAgIAlpZih0ZW1wMjwwKXRlbXAyPSh0ZW1wMikqKC0xKTsKCiAgICAgICAgICAgIGlmKHZpc2l0ZWRbbnhdW255XT09MCkKICAgICAgICAgICAgZGZzKG54LG55KTsKICAgICAgICAgICAgZHBbeF1beV0gPSBtaW4oZHBbeF1beV0sZHBbbnhdW255XSt0ZW1wMSt0ZW1wMik7CiAgICAgICAgfQogICAgfQogICAgdmlzaXRlZFt4XVt5XT0wOwp9CmludCBtYWluKCkKewogICAgaW50IHQ7CiAgICBjaW4+PnQ7CiAgICB3aGlsZSh0LS0pCiAgICB7CiAgICAgICAgY2luPj5oPj53OwoKICAgICAgICBmb3IoaW50IGk9MDtpPGg7aSsrKQogICAgICAgIGNpbj4+YVtpXTsKICAgICAgICBtZW1zZXQodmlzaXRlZCwwLHNpemVvZih2aXNpdGVkKSk7CgogICAgICAgIGZvcihpbnQgaT0wO2k8aDtpKyspCiAgICAgICAgZm9yKGludCBqPTA7ajx3O2orKykKICAgICAgICBkcFtpXVtqXT0xMDAwMDA7CgogICAgICAgIGZvcihpbnQgaT0wO2k8aDtpKyspCiAgICAgICAgewogICAgICAgICAgICBmb3IoaW50IGo9MDtqPHc7aisrKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICBpZihkcFtpXVtqXT09MTAwMDAwJiZhW2ldW2pdIT0nMScpCiAgICAgICAgICAgICAgICBkZnMoaSxqKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgICAgICBmb3IoaW50IGk9MDtpPGg7aSsrKQogICAgICAgIHsKICAgICAgICAgICAgaWYoaSE9MCkKICAgICAgICAgICAgY291dDw8IlxuIjsKICAgICAgICAgICAgZm9yKGludCBqPTA7ajx3O2orKykKICAgICAgICAgICAgewogICAgICAgICAgICAgIGlmKGFbaV1bal09PScxJykKICAgICAgICAgICAgICBjb3V0PDwiMCAiOwogICAgICAgICAgICAgIGVsc2UKICAgICAgICAgICAgICBjb3V0PDxkcFtpXVtqXTw8IiAiOwogICAgICAgICAgICB9CgogICAgICAgIH0KICAgICAgICBjb3V0PDwiXG4iOwogICAgfQogICAgcmV0dXJuIDA7Cn0KCg==