H, W = map(int, input().split()) si, sj = map(int, input().split()) si -= 1 sj -= 1 r1, c1, r2, c2 = map(int, input().split()) r1 -= 1 c1 -= 1 r2 -= 1 c2 -= 1 ti, tj = map(int, input().split()) ti -= 1 tj -= 1 from collections import deque que = deque() dij = [(1,0),(0,1),(-1,0),(0,-1)] musi = set() for i in range(r1, r2+1): for j in range(c1, c2+1): musi.add((i,j)) visited = set() que.append((si,sj,0)) visited.add((si,sj)) while que: nowi, nowj, d = que.popleft() if (nowi, nowj) in musi: d0 = d break for di, dj in dij: toi, toj = nowi+di, nowj+dj if toi < 0 or toi >= H or toj < 0 or toj >= W: continue if (toi,toj) not in visited: visited.add((toi,toj)) que.append((toi, toj, d+1)) visited = set() que = deque() que.append((nowi, nowj, 0)) visited.add((nowi, nowj)) while que: nowi, nowj, d = que.popleft() if (nowi, nowj) == (ti, tj): d1 = d break for di, dj in dij: toi, toj = nowi+di, nowj+dj if toi < 0 or toi >= H or toj < 0 or toj >= W: continue if (toi,toj) not in visited: visited.add((toi,toj)) que.append((toi, toj, d+1)) visited = set() que = deque() que.append((nowi, nowj, 0)) visited.add((nowi, nowj)) while que: nowi, nowj, d = que.popleft() if (nowi, nowj) == (si, sj): d2 = d break for di, dj in dij: toi, toj = nowi+di, nowj+dj if toi < 0 or toi >= H or toj < 0 or toj >= W: continue if (toi,toj) not in visited: visited.add((toi,toj)) que.append((toi, toj, d+1)) # print(musi) print(d0+d1+d2)