#include using namespace std; const int dx[4]={1,-1,0,0},dy[4]={0,0,1,-1}; struct P{ int x,y; } q[410],s[410],t[410]; int w,h,cnts,cntt,vis[30][30]; char a[30][30]; void bfs(int x,int y){ memcpy(t,s,sizeof(s)); cntt=cnts, cnts=0; queue

q; q.push((P){x,y}); vis[x][y]=1; while(!q.empty()){ P p=q.front(); q.pop(); s[cnts++]=(P){p.x,p.y}; for(int i=0;i<4;++i){ int xx=p.x+dx[i],yy=p.y+dy[i]; if(!vis[xx][yy]&&a[xx][yy]=='.'){ vis[xx][yy]=1; q.push((P){xx,yy}); } } } } int main(){ cin>>h>>w; for(int i=1;i<=w;++i) for(int j=1;j<=h;++j) cin>>a[i][j]; for(int i=1;i<=w;++i) for(int j=1;j<=h;++j) if(!vis[i][j]&&a[i][j]=='.') bfs(i,j); int minn=100; for(int i=0;id) minn=d; } cout<