import math
import numpy as np

w, h, sx, sy, ex, ey = input().split(" ")

map = []

for i in range(int(int(h)/2)):
    map.append(np.uint32(input().split(" ")))


w = int(w)
h = int(h)

sx = int(sx)
sy = int(sy)
ex = int(ex)
ey = int(ey)

dx = ex-sx
dy = ey-sy

skoky = []

# skoky v smere vlavo-vpravo

if dx == 0:
    hdvz, lpvz = 0, 0
else:
    hdvz = dx / abs(dx)
    lpvz = dy / abs(dx)

for i in range(1, abs(dx), 2):
    skoky.append([sx + i * hdvz, sy + i * lpvz])


# skoky v smere hore-dole
if dy == 0:
    hdvz, lpvz = 0, 0
else:
    hdvz = dx / abs(dy)
    lpvz = dy / abs(dy)

for i in range(1, abs(dy), 2):
    skoky.append([sx + i * hdvz, sy + i * lpvz])

skoky.sort()

finalskoky = []

for i in range(0, len(skoky)):
    if i == 0 or skoky[i] != skoky[i-1]:
        finalskoky.append(skoky[i])

dlzka = 0

# print(finalskoky)

for i in range(len(finalskoky)):
    # print(finalskoky[i])
    p0 = finalskoky[i][0] == int(finalskoky[i][0]) and int(finalskoky[i][0]) % 2 == 0
    p1 = finalskoky[i][1] == int(finalskoky[i][1]) and int(finalskoky[i][1]) % 2 == 0
    if p0 and p1:
        #skok na hranici
        xdp, ydp = int(finalskoky[i][0] / 2), int(finalskoky[i][1] / 2)
        pdl = int(map[ydp][xdp - 1])
        pdp = int(map[ydp][xdp])
        phl = int(map[ydp - 1][xdp - 1])
        php = int(map[ydp - 1][xdp])
        if (ex > sx and ey < sy) or (ex < sx and ey > sy): # /
            if (pdl < php and (php > pdp or php > phl)) or (pdl > php and (pdl > pdp or pdl > phl)):
                dlzka += abs(php - pdl)
                # print(1, dlzka)
            elif phl == pdp:
                dlzka += abs(pdl - min(phl, pdp)) + abs(php - min(phl, pdp))
            else:
                dlzka += abs(php - pdl)
                # print(2, dlzka)
        else: # \
            if (pdp < phl and (phl > pdl or phl > php)) or (pdp > phl and (pdp > pdl or pdp > php)):
                dlzka += abs(phl - pdp)
                # print(3, dlzka)
            elif php == pdl:
                dlzka += abs(pdl - min(phl, pdp)) + abs(php - min(phl, pdp))
            else:
                dlzka += abs(phl - pdp)
                # print(4, dlzka)
    elif p0:
        x = int(finalskoky[i][0])
        y = int(finalskoky[i][1])
        # skok l -> p
        dlzka += abs(int(map[int((y - 1) / 2)][int(x / 2) - 1]) - int(map[int((y - 1) / 2)][int(x / 2)]))
        # print(5, dlzka)
    elif p1:
        # skok d -> h
        x = int(finalskoky[i][0])
        y = int(finalskoky[i][1])

        dlzka += abs(int(map[int((y / 2) - 1)][int((x - 1) / 2)]) - int(map[int(y / 2)][int((x - 1) / 2)]))
        # print(6, dlzka, x, y)

dlzka += math.sqrt(dx ** 2 + dy ** 2)

print(dlzka)




