#include <iostream>
#include <vector>
#include<algorithm>
#include<cmath>
usingnamespacestd;
constintinf=1e9;
intmain(){
intn,s,f;
cin>>n>>s>>f;
s--;f--;
vector<int>d(n,inf),p(n);
vector<int>u(n);
vector<vector<pair<int,int>>>g(n);
for(inti=0;i<n;i++){
for(intj=0;j<n;j++){
intq;
scanf("%d",&q);
if(i>0){
}
}
}
d[s]=0;
for(inti=0;i<n;++i){
intv=-1;
for(intj=0;j<n;++j)
if(!u[j]&&(v==-1||d[j]<d[v]))
v=j;
if(d[v]==inf)break;
u[v]=true;
for(autoj:g[v]){
intto=j.first;
intlen=j.second;
if(d[v]+len<d[to]){
d[to]=d[v]+len;
p[to]=v;
}
}
}
cout<<(d[f]==inf?-1:d[f])<<endl;
return0;
}<EOF>