#include using namespace std; #define rep(i, a, b) for(int i = a; i < (b); ++i) #define all(x) begin(x), end(x) #define sz(x) (int)(x).size() #define pb push_back typedef long long ll; typedef pair pii; typedef vector vi; int dr[4] = {0, -1, 0, 1}; int dc[4] = {1, 0, -1, 0}; int main() { cin.tie(0)->sync_with_stdio(0); int n, m; cin >> n >> m; int sr, sc; int er, ec; cin >> sr >> sc >> er >> ec; sr--; sc--; er--; ec--; vector grid(n); for(int r = 0; r < n; r++) cin >> grid[r]; auto good = [&](int r, int c) { return r >= 0 && c >= 0 && r < n && c < m && grid[r][c] == '0'; }; int ans = 0; int r = sr; int c = sc; int d = 0; for(int steps = 0; steps < 4*n*m; steps++) { if(r == er && c == ec) ans = 1; int lr = r+dr[(d+1)%4]; int lc = c+dc[(d+1)%4]; if(good(lr, lc)) { r = lr; c = lc; d++; } else if(good(r+dr[d], c+dc[d])) { r += dr[d]; c += dc[d]; } else { d = (d+3)%4; } } cout << ans << "\n"; }