#include<bits/stdc++.h>
using namespace std;
int main(){
int dx[4] = {0,0,1,-1},dy[4] = {1,-1,0,0};
int tt;cin>>tt;
for(int t=1;t<=tt;t++){
int r,c;cin>>r>>c;
vector<string> initial;
for(int i=0;i<r;i++){
string row;cin>>row;
initial.push_back(row);
}
vector<vector<int> > dist;
queue<pair<int,int> > q;
for(int i=0;i<r;i++){
vector<int> row;
for(int j=0;j<c;j++){
if(initial[i][j]=='1'){
row.push_back(0);
q.push(make_pair(i,j));
}else row.push_back(INT_MAX);
}
dist.push_back(row);
}
int max_dist=0;
while(!q.empty()){
int x = q.front().first,y = q.front().second;
q.pop();
max_dist = max(max_dist,dist[x][y]);
for(int i=0;i<4;i++){
int xx = x+dx[i],yy = y+dy[i];
if(xx>=0 && xx<r && yy>=0 && yy<c){
if(dist[xx][yy]>dist[x][y]+1){
dist[xx][yy] = dist[x][y]+1;
q.push(make_pair(xx,yy));
}
}
}
}
int lower=-1,upper=max_dist;
while(upper-lower>1){
int mid = (upper+lower)/2;
int ipjmax=-r-c-1,ipjmin=r+c+1,imjmax=-r-c-1,imjmin=r+c+1;
for(int i=0;i<r;i++){
for(int j=0;j<c;j++){
if(dist[i][j]>mid){
ipjmin = min(i+j,ipjmin);
ipjmax = max(i+j,ipjmax);
imjmin = min(i-j,imjmin);
imjmax = max(i-j,imjmax);
}
}
}
if(ipjmax-ipjmin<=2*mid && imjmax-imjmin<2*mid
|| ipjmax-ipjmin<2*mid && imjmax-imjmin<=2*mid
|| ipjmax-ipjmin==2*mid && imjmax-imjmin==2*mid && (ipjmax + imjmax) % 2 == 0) {
upper = mid;
}
else lower = mid;
}
cout<<"Case #"<<t<<": "<<upper<<endl;
}
return 0;
}
I2luY2x1ZGU8Yml0cy9zdGRjKysuaD4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmludCBtYWluKCl7CiAgICAgICAgaW50IGR4WzRdID0gezAsMCwxLC0xfSxkeVs0XSA9IHsxLC0xLDAsMH07CiAgICAgICAgaW50IHR0O2Npbj4+dHQ7CiAgICAgICAgZm9yKGludCB0PTE7dDw9dHQ7dCsrKXsKICAgICAgICAgICAgICAgIGludCByLGM7Y2luPj5yPj5jOwogICAgICAgICAgICAgICAgdmVjdG9yPHN0cmluZz4gaW5pdGlhbDsKICAgICAgICAgICAgICAgIGZvcihpbnQgaT0wO2k8cjtpKyspewogICAgICAgICAgICAgICAgICAgICAgICBzdHJpbmcgcm93O2Npbj4+cm93OwogICAgICAgICAgICAgICAgICAgICAgICBpbml0aWFsLnB1c2hfYmFjayhyb3cpOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgdmVjdG9yPHZlY3RvcjxpbnQ+ID4gZGlzdDsKICAgICAgICAgICAgICAgIHF1ZXVlPHBhaXI8aW50LGludD4gPiBxOwogICAgICAgICAgICAgICAgZm9yKGludCBpPTA7aTxyO2krKyl7CiAgICAgICAgICAgICAgICAgICAgICAgIHZlY3RvcjxpbnQ+IHJvdzsKICAgICAgICAgICAgICAgICAgICAgICAgZm9yKGludCBqPTA7ajxjO2orKyl7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoaW5pdGlhbFtpXVtqXT09JzEnKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHJvdy5wdXNoX2JhY2soMCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBxLnB1c2gobWFrZV9wYWlyKGksaikpOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH1lbHNlIHJvdy5wdXNoX2JhY2soSU5UX01BWCk7CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgZGlzdC5wdXNoX2JhY2socm93KTsKICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGludCBtYXhfZGlzdD0wOwogICAgICAgICAgICAgICAgd2hpbGUoIXEuZW1wdHkoKSl7CiAgICAgICAgICAgICAgICAgICAgICAgIGludCB4ID0gcS5mcm9udCgpLmZpcnN0LHkgPSBxLmZyb250KCkuc2Vjb25kOwogICAgICAgICAgICAgICAgICAgICAgICBxLnBvcCgpOwogICAgICAgICAgICAgICAgICAgICAgICBtYXhfZGlzdCA9IG1heChtYXhfZGlzdCxkaXN0W3hdW3ldKTsKICAgICAgICAgICAgICAgICAgICAgICAgZm9yKGludCBpPTA7aTw0O2krKyl7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW50IHh4ID0geCtkeFtpXSx5eSA9IHkrZHlbaV07CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoeHg+PTAgJiYgeHg8ciAmJiB5eT49MCAmJiB5eTxjKXsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlmKGRpc3RbeHhdW3l5XT5kaXN0W3hdW3ldKzEpewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBkaXN0W3h4XVt5eV0gPSBkaXN0W3hdW3ldKzE7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIHEucHVzaChtYWtlX3BhaXIoeHgseXkpKTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIH0KICAgICAgICAgICAgICAgIGludCBsb3dlcj0tMSx1cHBlcj1tYXhfZGlzdDsKICAgICAgICAgICAgICAgIHdoaWxlKHVwcGVyLWxvd2VyPjEpewogICAgICAgICAgICAgICAgICAgICAgICBpbnQgbWlkID0gKHVwcGVyK2xvd2VyKS8yOwogICAgICAgICAgICAgICAgICAgICAgICBpbnQgaXBqbWF4PS1yLWMtMSxpcGptaW49citjKzEsaW1qbWF4PS1yLWMtMSxpbWptaW49citjKzE7CiAgICAgICAgICAgICAgICAgICAgICAgIGZvcihpbnQgaT0wO2k8cjtpKyspewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGZvcihpbnQgaj0wO2o8YztqKyspewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaWYoZGlzdFtpXVtqXT5taWQpewogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpcGptaW4gPSBtaW4oaStqLGlwam1pbik7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgIGlwam1heCA9IG1heChpK2osaXBqbWF4KTsKICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgaW1qbWluID0gbWluKGktaixpbWptaW4pOwogICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICBpbWptYXggPSBtYXgoaS1qLGltam1heCk7CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICB9CiAgICAgICAgICAgICAgICAgICAgICAgIGlmKGlwam1heC1pcGptaW48PTIqbWlkICYmIGltam1heC1pbWptaW48MiptaWQKICAgICAgICAgICAgICAgICAgICAgICAgCXx8IGlwam1heC1pcGptaW48MiptaWQgJiYgaW1qbWF4LWltam1pbjw9MiptaWQKICAgICAgICAgICAgICAgICAgICAgICAgCXx8IGlwam1heC1pcGptaW49PTIqbWlkICYmIGltam1heC1pbWptaW49PTIqbWlkICYmIChpcGptYXggKyBpbWptYXgpICUgMiA9PSAwKSB7CiAgICAgICAgICAgICAgICAgICAgICAgIAl1cHBlciA9IG1pZDsKICAgICAgICAgICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgICAgICAgICBlbHNlIGxvd2VyID0gbWlkOwogICAgICAgICAgICAgICAgfQogICAgICAgICAgICAgICAgY291dDw8IkNhc2UgIyI8PHQ8PCI6ICI8PHVwcGVyPDxlbmRsOwogICAgICAgIH0KICAgICAgICByZXR1cm4gMDsKfQ==