#include <stdio.h>
int fun(int startx,int starty,int endx,int endy,int board[6][6],int status)
{
if(startx==endx&&starty==endy)return 0;
int pay;
int min=65535;
if(startx+1<6&&startx<endx)
{
pay=status*board[startx+1][starty];
int status_now=pay%4+1;
int min2=fun(startx+1,starty,endx,endy,board,status_now)+pay;
if(min2<min)min=min2;
//printf("%d ",min);
}
if(starty-1>-1&&starty>endy)
{
pay=status*board[startx][starty-1];
int status_now=pay%4+1;
int min2=fun(startx,starty-1,endx,endy,board,status_now)+pay;
if(min2<min)min=min2;
}
if(starty+1<6&&starty<endy)
{
pay=status*board[startx][starty+1];
int status_now=pay%4+1;
int min2=fun(startx,starty+1,endx,endy,board,status_now)+pay;
if(min2<min)min=min2;
}
if(startx-1>-1&&startx>endx)
{
pay=status*board[startx-1][starty];
int status_now=pay%4+1;
int min2=fun(startx-1,starty,endx,endy,board,status_now)+pay;
if(min2<min)min=min2;
}
return min;
}
int main() {
int board[6][6];
for(int i=0;i<6;i++)
{
for(int j=0;j<6;j++)
scanf("%d",&board[i][j]);
}
int startx;
int starty;
scanf("%d %d",&startx,&starty);
int endx;
int endy;
scanf("%d %d",&endx,&endy);
printf("%d",fun(startx,starty,endx,endy,board,1));
return 0;
}