include[HTML_REMOVED]
include[HTML_REMOVED]
include[HTML_REMOVED]
include[HTML_REMOVED]
using namespace std;
const int N=100;
int g[N][N],p[N][N];
int dx[4]={1,0,-1,0},dy[4]={0,1,0,-1};
//typedef pair[HTML_REMOVED] PII;
int n,m;
int bfs(){
queue[HTML_REMOVED]> q;
memset(p,-1,sizeof p);
p[0][0]=0;
q.push({0,0});
while(q.size()){
auto t=q.front();
q.pop();
for(int i=0;i<4;i++){
int x=t.first+dx[i],y=t.second+dy[i];
if(x>=0&&x[HTML_REMOVED]=0&&y<m&&g[x][y]==0&&p[x][y]==-1){
p[x][y]=p[t.first][t.second]+1;
q.push({x,y});
}
}
}
return p[n-1][m-1];
}
int main(){
//int n,m;
cin>>n>>m;
for(int i=0;i[HTML_REMOVED]>g[i][j];
}
}
cout<<bfs()<<endl;
return 0;
}