#include <bits/stdc++.h>
using namespace std;
typedef long long ll;
typedef pair<int, int> ii;
const int INF = 1e9;
const ll LINF = 1e18;
const int N = 2e2 + 5;
int dx[4] = {-1, -1, 1, 1};
int dy[4] = {-1, 1, -1, 1};
int n, m, sx, sy, tx, ty;
bool ban[N][N];
bool ok(int x, int y) {
return (1 <= x && x <= n && 1 <= y && y <= n && !ban[x][y]);
}
int dist[N][N];
void bfs(int sx, int sy) {
for (int x = 1; x <= n; x++) {
for (int y = 1; y <= n; y++) dist[x][y] = -1;
}
queue<ii> q;
dist[sx][sy] = 0;
q.push({sx, sy});
while (!q.empty()) {
ii u = q.front(); q.pop();
int x = u.first, y = u.second;
for (int i = 0; i < 4; i++) {
int nx = x, ny = y;
while (ok(nx + dx[i], ny + dy[i])) {
nx += dx[i], ny += dy[i];
if (dist[nx][ny] == -1) {
dist[nx][ny] = dist[x][y] + 1;
q.push({nx, ny});
}
}
}
}
}
int main() {
ios::sync_with_stdio(false);
cin.tie(nullptr);
cin >> n >> m >> sx >> sy >> tx >> ty;
for (int i = 0; i < m; i++) {
int x, y;
cin >> x >> y;
ban[x][y] = true;
}
bfs(sx, sy);
cout << dist[tx][ty] << '\n';
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+IAoKdXNpbmcgbmFtZXNwYWNlIHN0ZDsgIAoKdHlwZWRlZiBsb25nIGxvbmcgbGw7ICAKdHlwZWRlZiBwYWlyPGludCwgaW50PiBpaTsgIAoKY29uc3QgaW50IElORiA9IDFlOTsgIApjb25zdCBsbCBMSU5GID0gMWUxODsgIAoKY29uc3QgaW50IE4gPSAyZTIgKyA1OyAKCmludCBkeFs0XSA9IHstMSwgLTEsIDEsIDF9OyAKaW50IGR5WzRdID0gey0xLCAxLCAtMSwgMX07IAoKaW50IG4sIG0sIHN4LCBzeSwgdHgsIHR5OyAKYm9vbCBiYW5bTl1bTl07IAoKYm9vbCBvayhpbnQgeCwgaW50IHkpIHsKCXJldHVybiAoMSA8PSB4ICYmIHggPD0gbiAmJiAxIDw9IHkgJiYgeSA8PSBuICYmICFiYW5beF1beV0pOyAgCn0KCQppbnQgZGlzdFtOXVtOXTsgIAoKdm9pZCBiZnMoaW50IHN4LCBpbnQgc3kpIHsKCWZvciAoaW50IHggPSAxOyB4IDw9IG47IHgrKykgewoJCWZvciAoaW50IHkgPSAxOyB5IDw9IG47IHkrKykgZGlzdFt4XVt5XSA9IC0xOyAgCgl9CgkKCXF1ZXVlPGlpPiBxOyAgCglkaXN0W3N4XVtzeV0gPSAwOyAgIAoJcS5wdXNoKHtzeCwgc3l9KTsgIAoKCXdoaWxlICghcS5lbXB0eSgpKSB7CgkJaWkgdSA9IHEuZnJvbnQoKTsgcS5wb3AoKTsgIAoJCWludCB4ID0gdS5maXJzdCwgeSA9IHUuc2Vjb25kOyAgCgoJCWZvciAoaW50IGkgPSAwOyBpIDwgNDsgaSsrKSB7CgkJCWludCBueCA9IHgsIG55ID0geTsgIAoJCQl3aGlsZSAob2sobnggKyBkeFtpXSwgbnkgKyBkeVtpXSkpIHsKCQkJCW54ICs9IGR4W2ldLCBueSArPSBkeVtpXTsgCgkJCQlpZiAoZGlzdFtueF1bbnldID09IC0xKSB7CgkJCQkJZGlzdFtueF1bbnldID0gZGlzdFt4XVt5XSArIDE7ICAgCgkJCQkJcS5wdXNoKHtueCwgbnl9KTsgIAoJCQkJfQoJCQl9CgkJfQoJfQp9CgppbnQgbWFpbigpIHsKCWlvczo6c3luY193aXRoX3N0ZGlvKGZhbHNlKTsgCgljaW4udGllKG51bGxwdHIpOyAJCgljaW4gPj4gbiA+PiBtID4+IHN4ID4+IHN5ID4+IHR4ID4+IHR5OyAKCglmb3IgKGludCBpID0gMDsgaSA8IG07IGkrKykgewoJCWludCB4LCB5OyAKCQljaW4gPj4geCA+PiB5OyAKCQliYW5beF1beV0gPSB0cnVlOyAgCgl9CgoJYmZzKHN4LCBzeSk7ICAKCgljb3V0IDw8IGRpc3RbdHhdW3R5XSA8PCAnXG4nOwp9