#include <bits/stdc++.h>
using namespace std;
#define y1 aaaa
int n, m, y1, x1, y2, x2, visited[301][301], y, x, cnt = 1;
char a[301][301];
bool isEnd;
vector<pair<int, int>> v;
queue<pair<int,int>> q;
int dy[] = {-1, 0, 1, 0};
int dx[] = {0, 1, 0, -1};
void dfs(int y, int x){
if(y == y2 && x == x2){
isEnd = true;
return;
}
for(int i = 0; i < 4; i++){
int ny = y + dy[i];
int nx = x + dx[i];
if(ny < 0 || ny >= n || nx < 0 || nx >= m || visited[ny][nx]) continue;
visited[ny][nx] = 1;
if(a[ny][nx] == '1'){
v.push_back({ny, nx});
continue;
}
dfs(ny, nx);
}
}
int main(){
cin >> n >> m >> x1 >> y1 >> x2 >> y2;
for(int i = 0; i < n; i++){
for(int j = 0; j < m; j++){
cin >> a[i][j];
}
}
while(true){
fill(&visited[0][0], &visited[0][0] + 301 * 301, 0);
v.clear();
visited[y1][x1] = 1;
dfs(y1, x1);
if(isEnd) break;
for(auto b : v) a[b.first][b.second] = '0';
cnt++;
}
cout << cnt << '\n';
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CnVzaW5nIG5hbWVzcGFjZSBzdGQ7CiNkZWZpbmUgeTEgYWFhYQppbnQgbiwgbSwgeTEsIHgxLCB5MiwgeDIsIHZpc2l0ZWRbMzAxXVszMDFdLCB5LCB4LCBjbnQgPSAxOwpjaGFyIGFbMzAxXVszMDFdOwpib29sIGlzRW5kOwp2ZWN0b3I8cGFpcjxpbnQsIGludD4+IHY7CnF1ZXVlPHBhaXI8aW50LGludD4+IHE7CmludCBkeVtdID0gey0xLCAwLCAxLCAwfTsKaW50IGR4W10gPSB7MCwgMSwgMCwgLTF9OwoKdm9pZCBkZnMoaW50IHksIGludCB4KXsKICAgIGlmKHkgPT0geTIgJiYgeCA9PSB4Mil7CiAgICAgICAgaXNFbmQgPSB0cnVlOwogICAgICAgIHJldHVybjsKICAgIH0KICAgIAogICAgZm9yKGludCBpID0gMDsgaSA8IDQ7IGkrKyl7CiAgICAgICAgaW50IG55ID0geSArIGR5W2ldOwogICAgICAgIGludCBueCA9IHggKyBkeFtpXTsKICAgICAgICBpZihueSA8IDAgfHwgbnkgPj0gbiB8fCBueCA8IDAgfHwgbnggPj0gbSB8fCB2aXNpdGVkW255XVtueF0pIGNvbnRpbnVlOwogICAgICAgIHZpc2l0ZWRbbnldW254XSA9IDE7CiAgICAgICAgaWYoYVtueV1bbnhdID09ICcxJyl7CiAgICAgICAgICAgIHYucHVzaF9iYWNrKHtueSwgbnh9KTsKICAgICAgICAgICAgY29udGludWU7CiAgICAgICAgfQogICAgICAgIGRmcyhueSwgbngpOwogICAgfQp9CmludCBtYWluKCl7CiAgICBjaW4gPj4gbiA+PiBtID4+IHgxID4+IHkxID4+IHgyID4+IHkyOwogICAgZm9yKGludCBpID0gMDsgaSA8IG47IGkrKyl7CiAgICAgICAgZm9yKGludCBqID0gMDsgaiA8IG07IGorKyl7CiAgICAgICAgICAgIGNpbiA+PiBhW2ldW2pdOwogICAgICAgIH0KICAgIH0KICAgIAogICAgd2hpbGUodHJ1ZSl7CiAgICAgICAgZmlsbCgmdmlzaXRlZFswXVswXSwgJnZpc2l0ZWRbMF1bMF0gKyAzMDEgKiAzMDEsIDApOwogICAgICAgIHYuY2xlYXIoKTsKICAgICAgICAKICAgICAgICB2aXNpdGVkW3kxXVt4MV0gPSAxOwogICAgICAgIGRmcyh5MSwgeDEpOwogICAgICAgIAogICAgICAgIGlmKGlzRW5kKSBicmVhazsKICAgICAgICAKICAgICAgICBmb3IoYXV0byBiIDogdikgYVtiLmZpcnN0XVtiLnNlY29uZF0gPSAnMCc7CiAgICAgICAgY250Kys7CiAgICB9CiAgICBjb3V0IDw8IGNudCA8PCAnXG4nOwp9