import heapq
def dijkstra(grid, x, y, end_x, end_y):
rows, cols = 6, 6
visted = set()
pq = [(0, x, y, 1)]
while pq:
cost, x, y, state = heapq.heappop(pq)
if x == end_x and y == end_y:
return cost
if (x, y, state) in visted:
continue
visted.add((x, y, state))
direction = [(-1, 0), (1, 0), (0, 1), (0, -1)]
for dx, dy in direction:
new_x, new_y = x + dx, y + dy
if 0 <= new_x < 6 and 0 <= new_y < 6:
step_cost = grid[new_x][new_y] * state
new_state = (step_cost % 4) + 1
heapq.heappush(pq, (cost+step_cost, new_x, new_y, new_state))
return -1
grid = []
row = []
for i in range(6):
a = list(map(int, input().split()))
grid.append(a)
x, y, end_x, end_y = map(int, input().split())
print(dijkstra(grid, x, y, end_x, end_y))