#include using namespace std; struct P{int x;int y;};P cp,r[502][502];int n,i,m,s,l,j,wx,wy,cc=1,ff=2;int b[502][502],v[502][502],c[502][502],fr[502][502]; P xy(P p,int ak){P wq;switch(ak){case 0:wq.x=p.x;wq.y=p.y+1;break;case 1:wq.x=p.x+1;wq.y=p.y;break;case 2:wq.x=p.x;wq.y=p.y-1;break; case 3:wq.x=p.x-1;wq.y=p.y;break;}return wq;}int gh(P p){if((p.x==wx)&&(p.y==wy)&&l>2){l++;return 1;}return 0;} int tw(P p){return fr[p.x][p.y]==0?0:fr[p.x][p.y]==ff?0:c[p.x][p.y]==cc?0:1;} int aa(){int f=0;s=(s+1)%4;for(int z=0;z<4;z++){P g=xy(cp,s);if(gh(g)){ while((cp.x!=wx)||(cp.y!=wy)){v[cp.x][cp.y]=1;cp=r[cp.x][cp.y];} v[cp.x][cp.y]=1;return 1;}if(tw(g)){P h=cp;cp=g;r[cp.x][cp.y]=h;c[h.x][h.y]=cc;l++;f=1;break;}s=(s+3)%4;} if(!f){fr[cp.x][cp.y]=ff;l--;cp=r[cp.x][cp.y];}return 0;} int main(){cin>>n>>m;char st[m+1];for(j=0;j>st;for(j=1;j0)&&(fr[cp.x][cp.y]=4)v[i][j]=1;else{b[i][j]=0;for(int dd=0;dd<4;dd++){int ii,jj;switch(dd){ case 0:ii=i+1;jj=j;break;case 1:ii=i;jj=j+1;break;case 2:ii=i-1;jj=j;break;case 3:ii=i;jj=j-1;break; }while(b[ii-1][jj]+b[ii+1][jj]+b[ii][jj-1]+b[ii][jj+1]==1){b[ii][jj]=0; if(b[ii-1][jj])ii=ii-1;else if(b[ii+1][jj])ii=ii+1;else if(b[ii][jj-1])jj=jj-1; else jj=jj+1;}}}}int k=0;for(i=1;i