#include <iostream>
#define ARC 6
#define INT_MAX 400
using namespace std;
const int dx[4]={-1,0,0,1};
const int dy[4]={0,-1,1,0};
int a,b,c,d;
int mapchess[ARC][ARC];
void dfs(int &curMin,int sum,int state,int curX,int curY){
if(sum>=curMin){
return;
}
if(curX==c&&curY==d){
if(sum<curMin){
curMin=sum;
}
return;
}
for(int i=0;i<4;i++){
int nextX=curX+dx[i];
int nextY=curY+dy[i];
if(nextX>=0&&nextX<ARC&&nextY>=0&&nextY<ARC){
if(sum+state*mapchess[nextX][nextY]<curMin){
dfs(curMin,sum+state*mapchess[nextX][nextY],state*mapchess[nextX][nextY]%4+1,nextX,nextY);
}
}
}
}
int main(){
for(int i=0;i<ARC;i++){
for(int j=0;j<ARC;j++){
cin>>mapchess[i][j];
}
}
cin>>a>>b>>c>>d;
int curMin=INT_MAX;
dfs(curMin,0,1,a,b);
cout<<curMin<<endl;
}