import java.io.*;
import java.util.*;
import java.lang.*;
class Main
{
static class FastReader{
public FastReader(){
}
while(st == null || !st.hasMoreElements()){
try{
}
e.printStackTrace();
}
}
return st.nextToken();
}
int nextInt(){
}
long nextLong(){
return Long.
parseLong(next
()); }
try{
sr = br.readLine();
}
e.printStackTrace();
}
return sr;
}
}
public static class Node {
int i ;
int j;
public Node(int i, int j) {
super();
this.i = i;
this.j = j;
}
}
static int dirX[] = {-1,0,1};
static int dirY[] = {-1,0,1};
{
FastReader ft = new FastReader();
int t = ft.nextInt();
while(t-->0)
{
int n = ft.nextInt();
int m = ft.nextInt();
int vis[][] = new int[n][m];
char a[][] = new char[n][m];
for(int i = 0;i < n;i++) {
String s
= ft.
nextLine().
trim().
replace(" ",
""); // System.out.println(s);
a[i] = s.toCharArray();}
Queue<Node> q = new LinkedList<>();
for(int i = 0;i < n;i++)
for(int j = 0;j < m;j++)
{
if(a[i][j] == '1')
{
q.add(new Node(i,j));
vis[i][j] = 1;
}
}
while(!q.isEmpty()) {
Node node = q.poll();
int x = node.i;
int y = node.j;
for(int i = 0;i <=2;i++)
for(int j = 0;j <= 2;j++)
{ if(dirX[i] != dirY[j]) {
int X = dirX[i]+x;
int Y = dirY[j]+y;
if(ok(X,Y,n,m) && vis[X][Y] == 0)
{
q.add(new Node(X,Y));
vis[X][Y] = vis[x][y]+1;
}}
}
}
for(int i = 0;i < n;i++) {
for(int j = 0;j<m;j++)
out.write((vis[i][j]-1)+" ");
out.write("\n");
}
}
out.flush();
}
private static boolean ok(int x, int y, int n, int m) {
if(x<0 || y <0 || x>=n || y>=m)
return false;
return true;
}
}
aW1wb3J0IGphdmEuaW8uKjsKaW1wb3J0IGphdmEudXRpbC4qOwppbXBvcnQgamF2YS5sYW5nLio7CgpjbGFzcyBNYWluCnsKCQoJICBzdGF0aWMgY2xhc3MgRmFzdFJlYWRlcnsKCSAgICAgICAgQnVmZmVyZWRSZWFkZXIgYnI7CgkgICAgICAgIFN0cmluZ1Rva2VuaXplciBzdDsKCSAgICAgICAgcHVibGljIEZhc3RSZWFkZXIoKXsKCSAgICAgICAgICAgIGJyID0gbmV3IEJ1ZmZlcmVkUmVhZGVyKG5ldyBJbnB1dFN0cmVhbVJlYWRlcihTeXN0ZW0uaW4pKTsKCSAgICAgICAgfQoJICAgICAgICBTdHJpbmcgbmV4dCgpewoJICAgICAgICAgICAgd2hpbGUoc3QgPT0gIG51bGwgfHwgIXN0Lmhhc01vcmVFbGVtZW50cygpKXsKCSAgICAgICAgICAgICAgICB0cnl7CgkgICAgICAgICAgICAgICAgICAgIHN0ID0gbmV3IFN0cmluZ1Rva2VuaXplcihici5yZWFkTGluZSgpKTsKCSAgICAgICAgICAgICAgICB9CgkgICAgICAgICAgICAgICAgY2F0Y2goSU9FeGNlcHRpb24gZSl7CgkgICAgICAgICAgICAgICAgICAgIGUucHJpbnRTdGFja1RyYWNlKCk7CgkgICAgICAgICAgICAgICAgfQoJICAgICAgICAgICAgfQoJICAgICAgICAgICAgcmV0dXJuIHN0Lm5leHRUb2tlbigpOwoJICAgICAgICB9CgkgICAgICAgIGludCBuZXh0SW50KCl7CgkgICAgICAgICAgICByZXR1cm4gSW50ZWdlci5wYXJzZUludChuZXh0KCkpOwoJICAgICAgICB9CgkgICAgICAgIGxvbmcgbmV4dExvbmcoKXsKCSAgICAgICAgICAgIHJldHVybiBMb25nLnBhcnNlTG9uZyhuZXh0KCkpOwoJICAgICAgICB9CgkgICAgICAgIFN0cmluZyBuZXh0TGluZSgpewoJICAgICAgICAgICAgU3RyaW5nIHNyID0gIiI7CgkgICAgICAgICAgICB0cnl7CgkgICAgICAgICAgICAgICAgc3IgPSBici5yZWFkTGluZSgpOwoJICAgICAgICAgICAgfQoJICAgICAgICAgICAgY2F0Y2goSU9FeGNlcHRpb24gZSl7CgkgICAgICAgICAgICAgICAgZS5wcmludFN0YWNrVHJhY2UoKTsKCSAgICAgICAgICAgIH0KCSAgICAgICAgICAgIHJldHVybiBzcjsKCSAgICAgICAgfQoJICAgIH0KCSAgICAgcHVibGljIHN0YXRpYyBjbGFzcyBOb2RlIHsKCSAgICAgICAgaW50IGkgOwoJICAgICAgICBpbnQgajsKCQkJcHVibGljIE5vZGUoaW50IGksIGludCBqKSB7CgkJCQlzdXBlcigpOwoJCQkJdGhpcy5pID0gaTsKCQkJCXRoaXMuaiA9IGo7CgkJCX0KCSAgICAgICAgCgkJICB9CiAgICAgICAgc3RhdGljIGludCBkaXJYW10gPSB7LTEsMCwxfTsKICAgICAgICBzdGF0aWMgaW50IGRpcllbXSA9IHstMSwwLDF9OwoJCXB1YmxpYyBzdGF0aWMgdm9pZCBtYWluIChTdHJpbmdbXSBhcmdzKSB0aHJvd3MgamF2YS5sYW5nLkV4Y2VwdGlvbgoJCXsKCQkJRmFzdFJlYWRlciBmdCA9IG5ldyBGYXN0UmVhZGVyKCk7CgkJICAgIEJ1ZmZlcmVkV3JpdGVyIG91dCA9IG5ldyBCdWZmZXJlZFdyaXRlcihuZXcgT3V0cHV0U3RyZWFtV3JpdGVyKFN5c3RlbS5vdXQpKTsKCSAgICAgICAgaW50IHQgPSBmdC5uZXh0SW50KCk7CgkgICAgICAgIHdoaWxlKHQtLT4wKQoJICAgICAgICB7CgkgICAgICAgIAlpbnQgbiA9IGZ0Lm5leHRJbnQoKTsKCSAgICAgICAgCWludCBtID0gZnQubmV4dEludCgpOwoJICAgICAgICAJaW50IHZpc1tdW10gPSBuZXcgaW50W25dW21dOwoJICAgICAgICAJY2hhciBhW11bXSA9IG5ldyBjaGFyW25dW21dOwoJICAgICAgICAJZm9yKGludCBpID0gMDtpIDwgbjtpKyspIHsKCSAgICAgICAgCQlTdHJpbmcgcyA9IGZ0Lm5leHRMaW5lKCkudHJpbSgpLnJlcGxhY2UoIiAiLCAiIik7Ci8vCSAgICAgICAgCQlTeXN0ZW0ub3V0LnByaW50bG4ocyk7CgkgICAgICAgIAkgICAgYVtpXSA9IHMudG9DaGFyQXJyYXkoKTt9CgkgICAgICAgICAgICBRdWV1ZTxOb2RlPiBxID0gbmV3IExpbmtlZExpc3Q8PigpOwoJICAgICAgICAJZm9yKGludCBpID0gMDtpIDwgbjtpKyspCgkgICAgICAgIAkJZm9yKGludCBqID0gMDtqIDwgbTtqKyspCgkgICAgICAgIAkJewoJICAgICAgICAJCQlpZihhW2ldW2pdID09ICcxJykKCSAgICAgICAgCQkJewoJICAgICAgICAJCQkJcS5hZGQobmV3IE5vZGUoaSxqKSk7CgkgICAgICAgIAkJCQl2aXNbaV1bal0gPSAxOwoJICAgICAgICAJCQl9CgkgICAgICAgIAkJfQoJICAgICAgICAJd2hpbGUoIXEuaXNFbXB0eSgpKSB7CgkgICAgICAgIAkJTm9kZSBub2RlID0gcS5wb2xsKCk7CgkgICAgICAgIAkJaW50IHggPSBub2RlLmk7CgkgICAgICAgIAkJaW50IHkgPSBub2RlLmo7CgkgICAgICAgIAkJZm9yKGludCBpID0gMDtpIDw9MjtpKyspCgkgICAgICAgIAkJCWZvcihpbnQgaiA9IDA7aiA8PSAyO2orKykKCSAgICAgICAgCQkJeyAgaWYoZGlyWFtpXSAhPSBkaXJZW2pdKSB7CgkgICAgICAgIAkJCQlpbnQgWCA9IGRpclhbaV0reDsKCSAgICAgICAgCQkJCWludCBZID0gZGlyWVtqXSt5OwoJICAgICAgICAJCQkJaWYob2soWCxZLG4sbSkgJiYgdmlzW1hdW1ldID09IDApCgkgICAgICAgIAkJCQl7CgkgICAgICAgIAkJCQkJcS5hZGQobmV3IE5vZGUoWCxZKSk7CgkgICAgICAgIAkJCQkJdmlzW1hdW1ldID0gdmlzW3hdW3ldKzE7CgkgICAgICAgIAkJCQl9fQoJICAgICAgICAJCQl9CgkgICAgICAgIAkJCgkgICAgICAgIAl9CgkgICAgICAgIAlmb3IoaW50IGkgPSAwO2kgPCBuO2krKykgewoJICAgICAgICAJCWZvcihpbnQgaiA9IDA7ajxtO2orKykKCSAgICAgICAgCQkJb3V0LndyaXRlKCh2aXNbaV1bal0tMSkrIiAiKTsKCSAgICAgICAgCQlvdXQud3JpdGUoIlxuIik7CgkgICAgICAgIAl9CgkgICAgICAgIAkKCSAgICAgICAgfQoJICAgIAlvdXQuZmx1c2goKTsKCQl9CgkJcHJpdmF0ZSBzdGF0aWMgYm9vbGVhbiBvayhpbnQgeCwgaW50IHksIGludCBuLCBpbnQgbSkgewogICAgICAgICAgICBpZih4PDAgfHwgeSA8MCB8fCB4Pj1uIHx8IHk+PW0pCgkJCXJldHVybiBmYWxzZTsKICAgICAgICAgICAgcmV0dXJuIHRydWU7CgkJfQoJfSA=