#include <iostream>
#include <fstream>
#include <map>
#include <string>
#include <vector>
#include <set>
#include <climits>
#include <queue>
using namespace std;
const int INF = 1000000000;
int main() {
int n, m, n0, m0, n1, m1;
cin>>n>>m>>n0>>m0>>n1>>m1;
vector < vector < pair<int,int> > > g (n*m);
short **map=(short**)malloc(sizeof(short*)*n);
for(int i=0;i<n;i++)map[i]=(short*)malloc(sizeof(short)*m);
for(int i=0;i<n;i++){
for(int j=0; j<m; j++)
cin>>map[i][j];
//fscanf(f,"%hd",&map[i][j]);
}
for(int i=0;i<n;i++){
for(int j=0; j<m; j++){
if(i>0){
int diff=abs(map[i][j]-map[i-1][j]);
g[i+n*j].push_back(make_pair(i-1+n*j,diff));
}
if(i<n-1){
int diff=abs(map[i][j]-map[i+1][j]);
g[i+n*j].push_back(make_pair(i+1+n*j,diff));
}
if(j>0){
int diff=abs(map[i][j]-map[i][j-1]);
g[i+n*j].push_back(make_pair(i+n*(j-1),diff));
}
if(j<m-1){
int diff=abs(map[i][j]-map[i][j+1]);
g[i+n*j].push_back(make_pair(i+n*(j+1),diff));
}
}
}
int s = n0+m0*n;
for(int i=0;i<n;i++)free(map[i]);
free(map);
vector<int> d (n*m, INF), p (n*m);
d[s] = 0;
priority_queue < pair<int,int> > q;
q.push (make_pair (0, s));
while (!q.empty()) {
int v = q.top().second, cur_d = -q.top().first;
q.pop();
if (cur_d > d[v]) continue;
for (size_t j=0; j<g[v].size(); ++j) {
int to = g[v][j].first,
len = g[v][j].second;
if (d[v] + len < d[to]) {
d[to] = d[v] + len;
p[to] = v;
q.push (make_pair (-d[to], to));
}
}
}
cout<<d[n1+m1*n];
}
I2luY2x1ZGUgPGlvc3RyZWFtPgojaW5jbHVkZSA8ZnN0cmVhbT4KI2luY2x1ZGUgPG1hcD4KI2luY2x1ZGUgPHN0cmluZz4KI2luY2x1ZGUgPHZlY3Rvcj4KI2luY2x1ZGUgPHNldD4KI2luY2x1ZGUgPGNsaW1pdHM+CiNpbmNsdWRlIDxxdWV1ZT4KdXNpbmcgbmFtZXNwYWNlIHN0ZDsKCmNvbnN0IGludCBJTkYgPSAxMDAwMDAwMDAwOwoKaW50IG1haW4oKSB7CiAgICBpbnQgbiwgbSwgbjAsIG0wLCBuMSwgbTE7CiAgICBjaW4+Pm4+Pm0+Pm4wPj5tMD4+bjE+Pm0xOwoJdmVjdG9yIDwgdmVjdG9yIDwgcGFpcjxpbnQsaW50PiA+ID4gZyAobiptKTsKICAgIHNob3J0ICoqbWFwPShzaG9ydCoqKW1hbGxvYyhzaXplb2Yoc2hvcnQqKSpuKTsKICAgIGZvcihpbnQgaT0wO2k8bjtpKyspbWFwW2ldPShzaG9ydCopbWFsbG9jKHNpemVvZihzaG9ydCkqbSk7CiAgICBmb3IoaW50IGk9MDtpPG47aSsrKXsKICAgICAgICBmb3IoaW50IGo9MDsgajxtOyBqKyspCiAgICAgICAgICAgIGNpbj4+bWFwW2ldW2pdOwogICAgICAgICAgICAvL2ZzY2FuZihmLCIlaGQiLCZtYXBbaV1bal0pOyAKICAgIH0KICAgIGZvcihpbnQgaT0wO2k8bjtpKyspewogICAgICAgIGZvcihpbnQgaj0wOyBqPG07IGorKyl7CiAgICAgICAgICAgIGlmKGk+MCl7CiAgICAgICAgICAgICAgICBpbnQgZGlmZj1hYnMobWFwW2ldW2pdLW1hcFtpLTFdW2pdKTsKICAgICAgICAgICAgICAgIGdbaStuKmpdLnB1c2hfYmFjayhtYWtlX3BhaXIoaS0xK24qaixkaWZmKSk7CiAgICAgICAgICAgIH0KICAgICAgICAgICAgaWYoaTxuLTEpewogICAgICAgICAgICAgICAgaW50IGRpZmY9YWJzKG1hcFtpXVtqXS1tYXBbaSsxXVtqXSk7CiAgICAgICAgICAgICAgICBnW2krbipqXS5wdXNoX2JhY2sobWFrZV9wYWlyKGkrMStuKmosZGlmZikpOwogICAgICAgICAgICB9CiAgICAgICAgICAgIGlmKGo+MCl7CiAgICAgICAgICAgICAgICBpbnQgZGlmZj1hYnMobWFwW2ldW2pdLW1hcFtpXVtqLTFdKTsKICAgICAgICAgICAgICAgIGdbaStuKmpdLnB1c2hfYmFjayhtYWtlX3BhaXIoaStuKihqLTEpLGRpZmYpKTsKICAgICAgICAgICAgfQogICAgICAgICAgICBpZihqPG0tMSl7CiAgICAgICAgICAgICAgICBpbnQgZGlmZj1hYnMobWFwW2ldW2pdLW1hcFtpXVtqKzFdKTsKICAgICAgICAgICAgICAgIGdbaStuKmpdLnB1c2hfYmFjayhtYWtlX3BhaXIoaStuKihqKzEpLGRpZmYpKTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KICAgIAoJaW50IHMgPSBuMCttMCpuOwogICAgZm9yKGludCBpPTA7aTxuO2krKylmcmVlKG1hcFtpXSk7CiAgICBmcmVlKG1hcCk7Cgl2ZWN0b3I8aW50PiBkIChuKm0sIElORiksICBwIChuKm0pOwoJZFtzXSA9IDA7CiAgICAKICAgIHByaW9yaXR5X3F1ZXVlIDwgcGFpcjxpbnQsaW50PiA+IHE7CglxLnB1c2ggKG1ha2VfcGFpciAoMCwgcykpOwoJd2hpbGUgKCFxLmVtcHR5KCkpIHsKCQlpbnQgdiA9IHEudG9wKCkuc2Vjb25kLCAgY3VyX2QgPSAtcS50b3AoKS5maXJzdDsKCQlxLnBvcCgpOwoJCWlmIChjdXJfZCA+IGRbdl0pICBjb250aW51ZTsKIAoJCWZvciAoc2l6ZV90IGo9MDsgajxnW3ZdLnNpemUoKTsgKytqKSB7CgkJCWludCB0byA9IGdbdl1bal0uZmlyc3QsCgkJCQlsZW4gPSBnW3ZdW2pdLnNlY29uZDsKCQkJaWYgKGRbdl0gKyBsZW4gPCBkW3RvXSkgewoJCQkJZFt0b10gPSBkW3ZdICsgbGVuOwoJCQkJcFt0b10gPSB2OwoJCQkJcS5wdXNoIChtYWtlX3BhaXIgKC1kW3RvXSwgdG8pKTsKCQkJfQoJCX0KCX0KICAgIGNvdXQ8PGRbbjErbTEqbl07Cn0K