#include<stdio.h> const int x0[]={0,1,0,-1},y0[]={1,0,-1,0}; int n,m,cnt,x[10000],y[10000],t[10000]; char c[110][110]; int b[110][110]; int main() { scanf("%d %d",&n,&m); for(int i=1;i<=n;i++) scanf("%s",c[i]); int head=0,tail=1; x[1]=t[1]=1;y[1]=0; b[1][0]=1; while(head!=tail) { head++; for(int i=0;i<4;i++) { int x1=x[head]+x0[i],y1=y[head]+y0[i]; if(x1>0&&x1<=n&&y1>=0&&y1<m&&c[x1][y1]=='.'&&!b[x1][y1]) { tail++;b[x1][y1]=1; x[tail]=x1;y[tail]=y1;t[tail]=t[head]+1; if(x1==n&&y1==m-1) { printf("%d",t[tail]); return 0; } } } } } /************************************************************** Problem: 1432 User: admin Language: C Result: Accepted Time:40 ms Memory:1320 kb ****************************************************************/