#include using namespace std; using ll=long long; using pii=pair; #define all(a) a.begin(),a.end() #define pb push_back #define sz(a) ((int)a.size()) const int N=2405; int n,m,b[N][N]; string a[N]; bool vis[N][N]; bool valid(int i, int j){return i>=0&&i=0&&j q; q.push({1,1}),vis[1][1]=1; while(!q.empty()){ auto [x,y]=q.front(); q.pop(); for(int i: {-1,0,1}) for(int j: {-1,0,1}){ int nx=x+i,ny=y+j; if(valid(nx,ny)&&b[nx][ny]==0&&!vis[nx][ny]){ q.push({nx,ny}),vis[nx][ny]=1; } } } return vis[n-2][m-2]; } signed main(){ ios_base::sync_with_stdio(0),cin.tie(0); cin >> n >> m; for(int i=0; i> a[i]; for(int i=0; i