#include <bits/stdc++.h>
using namespace std;
int a[4][2]={{-1,0},{1,0},{0,-1},{0,1}};
int matrix[8][8],vis[8][8];
int mincost=INT_MAX;
int si,sj,ei,ej;
void dfs(int i,int j,int statue,int cost)
{
if(i>6||i<1||j>6||j<1) return;//超出棋盘范围
if(cost>mincost) return;//到这步的花费已经大于记录的最小代价,good剪枝
if(i==ei+1&&j==ej+1)//到达终点
{
mincost=min(mincost,cost);
return;
}
vis[i][j]=1;
for(int k=0;k<4;k++)//四个方向走
{
if(vis[i+a[k][0]][j+a[k][1]]==0)
{
//cout<<i+a[k][0]<<j+a[k][1]<<endl;
int thiscost=matrix[i+a[k][0]][j+a[k][1]]*statue;
dfs(i+a[k][0],j+a[k][1],(thiscost%4)+1,cost+thiscost);
vis[i+a[k][0]][j+a[k][1]]=0;//回溯
}
}
}
int main(){
for(int i=1;i<=6;i++)
for(int j=1;j<=6;j++)
{
cin>>matrix[i][j];
}
cin>>si>>sj>>ei>>ej;
dfs(si+1,sj+1,1,0);
cout<<mincost<<endl;
return 0;
}