#include <iostream>
#include<queue>
using namespace std;
struct node{
int i,j;
};
int main() {
int t;
cin>>t;
while(t--){
queue<node> q;
int m,n,i,j;
cin>>m>>n;
string a[m+1];int b[m+1][n+1];
for(i=0;i<m;i++)
cin>>a[i];
for(i=0;i<m;i++)
for(j=0;j<n;j++)
if(a[i][j]=='1')
{
node temp;
temp.i=i;
temp.j=j;
q.push(temp);
b[i][j]=0;
}
while(!q.empty()){
node temp=q.front();
i=temp.i;j=temp.j;
q.pop();
if(i<m-1&&a[i+1][j]=='0'){
a[i+1][j]=(b[i][j]+1)+48;
b[i+1][j]=b[i][j]+1;
temp.i=i+1;temp.j=j;
q.push(temp);
}
if(i>0&&a[i-1][j]=='0'){
a[i-1][j]=(b[i][j]+1)+48;
b[i-1][j]=b[i][j]+1;
temp.i=i-1;temp.j=j;
q.push(temp);
}
if(j>0&&a[i][j-1]=='0'){
a[i][j-1]=(b[i][j]+1)+48;
b[i][j-1]=b[i][j]+1;
temp.i=i;temp.j=j-1;
q.push(temp);
}
if(j<n-1&&a[i][j+1]=='0'){
a[i][j+1]=(b[i][j]+1)+48;
b[i][j+1]=b[i][j]+1;
temp.i=i;temp.j=j+1;
q.push(temp);
}
}
for(i=0;i<m;i++){
for(j=0;j<n;j++){
cout<<b[i][j];
if(j!=n-1)
cout<<" ";
}
cout<<endl;
}
}
return 0;
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZTxxdWV1ZT4KIHVzaW5nIG5hbWVzcGFjZSBzdGQ7CnN0cnVjdCBub2RlewogICAgaW50IGksajsKfTsKaW50IG1haW4oKSB7CiAgICBpbnQgdDsKICAgIGNpbj4+dDsKICAgIHdoaWxlKHQtLSl7CiAgICAgICAgcXVldWU8bm9kZT4gcTsKICAgICAgICBpbnQgbSxuLGksajsKICAgICAgICBjaW4+Pm0+Pm47CiAgICAgICAgIHN0cmluZyBhW20rMV07aW50IGJbbSsxXVtuKzFdOwogICAgICAgIGZvcihpPTA7aTxtO2krKykKICAgICAgICBjaW4+PmFbaV07CiAgICAgICAgZm9yKGk9MDtpPG07aSsrKQogICAgICAgIGZvcihqPTA7ajxuO2orKykKICAgICAgICBpZihhW2ldW2pdPT0nMScpCiAgICAgICAgewogICAgICAgICAgICBub2RlIHRlbXA7CiAgICAgICAgICAgIHRlbXAuaT1pOwogICAgICAgICAgICB0ZW1wLmo9ajsKICAgICAgICAgICAgcS5wdXNoKHRlbXApOwogICAgICAgICAgICBiW2ldW2pdPTA7CiAgICAgICAgfQogICAgICAgIHdoaWxlKCFxLmVtcHR5KCkpewogICAgICAgICAgICBub2RlIHRlbXA9cS5mcm9udCgpOwogICAgICAgICAgICBpPXRlbXAuaTtqPXRlbXAuajsKICAgICAgICAgICAgcS5wb3AoKTsKICAgICAgICAgICAgaWYoaTxtLTEmJmFbaSsxXVtqXT09JzAnKXsKICAgICAgICAgICAgYVtpKzFdW2pdPShiW2ldW2pdKzEpKzQ4OwogICAgICAgICAgICBiW2krMV1bal09YltpXVtqXSsxOwogICAgICAgICAgICAgICAgdGVtcC5pPWkrMTt0ZW1wLmo9ajsKICAgICAgICAgICAgICAgIHEucHVzaCh0ZW1wKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZihpPjAmJmFbaS0xXVtqXT09JzAnKXsKICAgICAgICAgICAgICAgIGFbaS0xXVtqXT0oYltpXVtqXSsxKSs0ODsKICAgICAgICAgICAgYltpLTFdW2pdPWJbaV1bal0rMTsKICAgICAgICAgICAgICAgICB0ZW1wLmk9aS0xO3RlbXAuaj1qOwogICAgICAgICAgICAgICAgcS5wdXNoKHRlbXApOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmKGo+MCYmYVtpXVtqLTFdPT0nMCcpewogICAgICAgICAgICAgICAgYVtpXVtqLTFdPShiW2ldW2pdKzEpKzQ4OwogICAgICAgICAgICBiW2ldW2otMV09YltpXVtqXSsxOwogICAgICAgICAgICAgICAgIHRlbXAuaT1pO3RlbXAuaj1qLTE7CiAgICAgICAgICAgICAgICBxLnB1c2godGVtcCk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYoajxuLTEmJmFbaV1baisxXT09JzAnKXsKICAgICAgICAgICAgICAgIGFbaV1baisxXT0oYltpXVtqXSsxKSs0ODsKICAgICAgICAgICAgYltpXVtqKzFdPWJbaV1bal0rMTsKICAgICAgICAgICAgICAgICB0ZW1wLmk9aTt0ZW1wLmo9aisxOwogICAgICAgICAgICAgICAgcS5wdXNoKHRlbXApOwogICAgICAgICAgICB9CiAgICAgICAgfQogICAgICAgIGZvcihpPTA7aTxtO2krKyl7CiAgICAgICAgZm9yKGo9MDtqPG47aisrKXsKICAgICAgICBjb3V0PDxiW2ldW2pdOwogICAgICAgICAgICBpZihqIT1uLTEpCiAgICAgICAgICAgIGNvdXQ8PCIgIjsKICAgICAgICB9CiAgICAgICAgICAgIGNvdXQ8PGVuZGw7CiAgICAgICAgfQogICAgICAgIAogICAgICAgIAogICAgICAgICAKICAgIH0KcmV0dXJuIDA7Cn0KCg==