#include<iostream>
#include<vector>
using namespace std;
int FL(int x,int y,int a[8][8])
{
    int min1(int a,int b);
    vector<int>Lvct(7,100);
    int i=0,j, min;
    Lvct.insert(&x,0);
    for(i=0;i<Lvct.size();i++)
        if(y==Lvct[i])
        {
            min=a[x][0];
            for(i=0;i<8;i++)
                if(a[x][i]!=0)
                    if(a[x][i]<min)
                    {
                        min=a[x][i];
                        j=i;
                    }
                    Lvct.erase(&i);
                    for(i=0;i<Lvct.size();i++)
                        if(a[j][Lvct[i]]!=0)
                            Lvct[Lvct[i]]=min1(Lvct[Lvct[i]],Lvct[j]+a[j][Lvct[i]]);
        }
        return Lvct[y];
}
int min1(int a,int b)
{
    if(a<b)
        return a;
    else
        return b;
}

void main()
{
    int i,j,k,m,n,a[8][8];
    cout<<"please input your array a[8][8]:"<<endl;
    for(i=0;i<8;i++)
        for(j=0;j<8;j++)
            cin>>a[i][j];
        cout<<endl;
    cout<<"input your two points:"<<endl;
        cin>>m>>n;
        cout<<endl;
        k=FL(m,n,a);
        cout<<k<<endl;
}