#include<bits/stdc++.h>
using namespace std;
int wh[1000],pa[1000][1000],a[1000][1000],f[1000][1000];
int n,k,m,s,t,u,v,d;
int main()
{
cin>>n>>k>>m>>s>>t;
for(int i=1;i<=n;i++)
cin>>wh[i];
for(int i=1;i<=k;i++)
for(int j=1;j<=k;j++)
cin>>pa[i][j];
if(pa[t][s]==1)
{
cout<<"-1";
return 0;
}
for(int i=1;i<=n;i++)
for(int j=1;j<=n;j++)
if(i!=j) a[i][j]=1e9;
for(int i=1;i<=m;i++)
{
cin>>u>>v>>d;
if(d<a[u][v])
{
if(pa[wh[u]][wh[v]]==0) a[v][u]=d;
if(pa[wh[v]][wh[u]]==0) a[u][v]=d;
}
}
for(int i=1;i<=n;i++)
for(int k=1;k<=n;k++)
for(int j=1;j<=n;j++)
if(a[i][k]+a[k][j]<a[i][j]) a[i][j]=a[i][k]+a[k][j];
if(a[s][t]>=1e9) cout<<"-1";
else cout<<a[s][t];
return 0;
}