#include<bits/stdc++.h>
using namespace std;
#define MAX 32000
typedef struct ll
{
int horz;
int vert;
}moves;
moves move1[4];
int arr[210][210];
int visited[210][210];
int dist[210][210];
int n,m;
char num[210];
queue< pair<int,int> > q;
void init()
{
int i,j;
for(i=0;i<n;i++)
{
for(j=0;j<m;j++)
{
if(arr[i][j])
{
dist[i][j]=0;
}
else
dist[i][j]=MAX;
}
}
}
void bfs()
{
int i,j,k,x,y;
pair<int,int> p,temp;
while(!q.empty())
{
p=q.front();
q.pop();
visited[p.first][p.second]=1;
for(i=0;i<4;i++)
{
x=p.first+move1[i].horz;
y=p.second+move1[i].vert;
if(x>=0&&x<n&&y>=0&&y<m&&!visited[x][y]&&dist[x][y]!=0)
{
visited[x][y]=1;
dist[x][y]=dist[p.first][p.second]+1;
temp.first=x;
temp.second=y;
q.push(temp);
}
}
}
}
int main()
{
int test,i,j,k;
pair<int,int> p;
move1[0].horz=0;
move1[0].vert=-1;
move1[1].horz=0;
move1[1].vert=1;
move1[2].horz=-1;
move1[2].vert=0;
move1[3].horz=1;
move1[3].vert=0;
cin>>test;
// scanf("%lld",&test);
for(i=0;i<test;i++)
{
cin>>n;
cin>>m;
// scanf("%lld",&n);
//scanf("%lld",&m);
for(j=0;j<n;j++)
{
cin>>num;
//scanf("%lld",&num);
for(k=0;k<m;k++)
{
arr[j][k]=num[k]-'0';
if(arr[j][k]==1)
{
p.first=j;
p.second=k;
q.push(p);
visited[j][k]=0;
dist[j][k]=0;
}
else{
visited[j][k]=0;
dist[j][k]=MAX;
}
}
}
//cout<<"reached"<<endl;
bfs();
for(j=0;j<n;j++)
{
for(k=0;k<m;k++)
{
//printf("%lld ",dist[j][k]);
cout<<dist[j][k]<<" ";
}
//printf("\n");
cout<<endl;
}
}
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKI2RlZmluZSBNQVggMzIwMDAKCnR5cGVkZWYgc3RydWN0IGxsCnsKICAgIGludCBob3J6OwogICAgaW50IHZlcnQ7Cn1tb3ZlczsKCm1vdmVzIG1vdmUxWzRdOwoKaW50IGFyclsyMTBdWzIxMF07CmludCB2aXNpdGVkWzIxMF1bMjEwXTsKaW50IGRpc3RbMjEwXVsyMTBdOwppbnQgbixtOwpjaGFyIG51bVsyMTBdOwpxdWV1ZTwgcGFpcjxpbnQsaW50PiA+IHE7CgoKdm9pZCBpbml0KCkKewogICAgaW50IGksajsKICAgIGZvcihpPTA7aTxuO2krKykKICAgIHsKICAgICAgICBmb3Ioaj0wO2o8bTtqKyspCiAgICAgICAgewogICAgICAgICAgICBpZihhcnJbaV1bal0pCiAgICAgICAgICAgIHsKICAgICAgICAgICAgICAgIGRpc3RbaV1bal09MDsKICAgICAgICAgICAgfQogICAgICAgICAgICBlbHNlCiAgICAgICAgICAgICAgICBkaXN0W2ldW2pdPU1BWDsKICAgICAgICB9CiAgICB9Cn0KCgp2b2lkIGJmcygpCnsKICAgIGludCBpLGosayx4LHk7CiAgICBwYWlyPGludCxpbnQ+IHAsdGVtcDsKICAgIHdoaWxlKCFxLmVtcHR5KCkpCiAgICB7CiAgICAgICAgcD1xLmZyb250KCk7CiAgICAgICAgcS5wb3AoKTsKICAgICAgICB2aXNpdGVkW3AuZmlyc3RdW3Auc2Vjb25kXT0xOwoKICAgICAgICBmb3IoaT0wO2k8NDtpKyspCiAgICAgICAgewogICAgICAgICAgICB4PXAuZmlyc3QrbW92ZTFbaV0uaG9yejsKICAgICAgICAgICAgeT1wLnNlY29uZCttb3ZlMVtpXS52ZXJ0OwoKICAgICAgICAgICAgaWYoeD49MCYmeDxuJiZ5Pj0wJiZ5PG0mJiF2aXNpdGVkW3hdW3ldJiZkaXN0W3hdW3ldIT0wKQogICAgICAgICAgICB7CiAgICAgICAgICAgICAgICB2aXNpdGVkW3hdW3ldPTE7CiAgICAgICAgICAgICAgICBkaXN0W3hdW3ldPWRpc3RbcC5maXJzdF1bcC5zZWNvbmRdKzE7CiAgICAgICAgICAgICAgICB0ZW1wLmZpcnN0PXg7CiAgICAgICAgICAgICAgICB0ZW1wLnNlY29uZD15OwogICAgICAgICAgICAgICAgcS5wdXNoKHRlbXApOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgfQp9CgppbnQgbWFpbigpCnsKICAgIGludCB0ZXN0LGksaixrOwogICAgcGFpcjxpbnQsaW50PiBwOwoKICAgIG1vdmUxWzBdLmhvcno9MDsKICAgIG1vdmUxWzBdLnZlcnQ9LTE7CgogICAgbW92ZTFbMV0uaG9yej0wOwogICAgbW92ZTFbMV0udmVydD0xOwoKICAgIG1vdmUxWzJdLmhvcno9LTE7CiAgICBtb3ZlMVsyXS52ZXJ0PTA7CgogICAgbW92ZTFbM10uaG9yej0xOwogICAgbW92ZTFbM10udmVydD0wOwoKICAgIGNpbj4+dGVzdDsKICAgLy8gc2NhbmYoIiVsbGQiLCZ0ZXN0KTsKICAgIGZvcihpPTA7aTx0ZXN0O2krKykKICAgIHsKCiAgICAgICAgY2luPj5uOwogICAgICAgIGNpbj4+bTsKICAgICAgICAvLyBzY2FuZigiJWxsZCIsJm4pOwogICAgICAgICAgLy9zY2FuZigiJWxsZCIsJm0pOwogICAgICAgIGZvcihqPTA7ajxuO2orKykKICAgICAgICB7CiAgICAgICAgICAgIGNpbj4+bnVtOwogICAgICAgICAgICAgLy9zY2FuZigiJWxsZCIsJm51bSk7CiAgICAgICAgICAgIGZvcihrPTA7azxtO2srKykKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgYXJyW2pdW2tdPW51bVtrXS0nMCc7CiAgICAgICAgICAgICAgICBpZihhcnJbal1ba109PTEpCiAgICAgICAgICAgICAgICB7CiAgICAgICAgICAgICAgICAgICAgcC5maXJzdD1qOwogICAgICAgICAgICAgICAgICAgIHAuc2Vjb25kPWs7CiAgICAgICAgICAgICAgICAgICAgcS5wdXNoKHApOwogICAgICAgICAgICAgICAgICAgIHZpc2l0ZWRbal1ba109MDsKICAgICAgICAgICAgICAgICAgICBkaXN0W2pdW2tdPTA7CiAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICBlbHNlewogICAgICAgICAgICAgICAgICAgIHZpc2l0ZWRbal1ba109MDsKICAgICAgICAgICAgICAgICAgICBkaXN0W2pdW2tdPU1BWDsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIAogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIC8vY291dDw8InJlYWNoZWQiPDxlbmRsOwogICAgICAgIGJmcygpOwogICAgICAgIGZvcihqPTA7ajxuO2orKykKICAgICAgICB7CiAgICAgICAgICAgIGZvcihrPTA7azxtO2srKykKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgLy9wcmludGYoIiVsbGQgIixkaXN0W2pdW2tdKTsKICAgICAgICAgICAgICAgIGNvdXQ8PGRpc3Rbal1ba108PCIgIjsKICAgICAgICAgICAgfQogICAgICAgICAgIC8vcHJpbnRmKCJcbiIpOwogICAgICAgICAgIGNvdXQ8PGVuZGw7CiAgICAgICAgfQoKCiAgICB9CiAgICByZXR1cm4gMDsKfQoKCgoKCgoKCg==