#include <bits/stdc++.h>
#define fi first
#define se second
#define ll long long
#define N int(1e3)
using namespace std;
ll n, m;
vector<pair<ll, ll>>adj[N+10];
ll gt[N+10][N+10];
pair<ll, ll>luu[N+10][N+10];
ll a, b, k, g;
ll g1[N+10], tg[N+10];
bool vis[N+10];
ll dis[N+10];
void djs(ll s)
{
for(int i = 1; i <= n; i++) dis[i] = 1e18;
priority_queue<pair<ll,ll>,vector<pair<ll,ll>>,greater<pair<ll,ll>>>pq;
dis[s]=k+1;
pq.push({k,s});
while(!pq.empty())
{
auto top=pq.top();pq.pop();
ll u=top.se;
ll kc=top.fi;
if(kc>dis[u]) continue;
for(auto it:adj[u])
{
ll v=it.fi;
ll w=it.se;
ll them=0;
pair<ll,ll>ed=luu[u][v];
ll st=luu[u][v].fi;
ll en=luu[u][v].se;
if(dis[u]>=st && dis[u]<en) them=en-dis[u];
if(dis[v] > dis[u] + w + them)
{
dis[v] = dis[u] + w + them;
pq.push({dis[v], v});
}
}
}
}
int main()
{
ios::sync_with_stdio(0);
cin.tie(0);
cout.tie(0);
cin>>n>>m;
cin>>a>>b>>k>>g;
for(int i=1; i<=g; i++) cin>>g1[i];
for(int i=1; i<=m; i++)
{
ll u, v, w;
cin>>u>>v>>w;
adj[u].push_back({v, w});
adj[v].push_back({u, w});
gt[u][v]=w;
gt[v][u]=w;
}
tg[g1[1]]=1;
for(int i=1; i<g; i++)
{
ll u=g1[i];
ll v=g1[i+1];
ll cu=tg[u];
ll moi=tg[u]+gt[u][v];
luu[u][v]= {cu, moi};
luu[v][u]= {cu, moi};
tg[v]=moi;
}
memset(vis,0,sizeof vis);
djs(a);
cout<<dis[b]-(1+k);
return 0;
}
I2luY2x1ZGUgPGJpdHMvc3RkYysrLmg+CiNkZWZpbmUgZmkgZmlyc3QKI2RlZmluZSBzZSBzZWNvbmQKI2RlZmluZSBsbCBsb25nIGxvbmcKI2RlZmluZSBOIGludCgxZTMpCnVzaW5nIG5hbWVzcGFjZSBzdGQ7CmxsIG4sIG07CnZlY3RvcjxwYWlyPGxsLCBsbD4+YWRqW04rMTBdOwpsbCBndFtOKzEwXVtOKzEwXTsKcGFpcjxsbCwgbGw+bHV1W04rMTBdW04rMTBdOwpsbCBhLCBiLCBrLCBnOwpsbCBnMVtOKzEwXSwgdGdbTisxMF07CmJvb2wgdmlzW04rMTBdOwpsbCBkaXNbTisxMF07CnZvaWQgZGpzKGxsIHMpCnsKICAgIGZvcihpbnQgaSA9IDE7IGkgPD0gbjsgaSsrKSBkaXNbaV0gPSAxZTE4OwogICAgcHJpb3JpdHlfcXVldWU8cGFpcjxsbCxsbD4sdmVjdG9yPHBhaXI8bGwsbGw+PixncmVhdGVyPHBhaXI8bGwsbGw+Pj5wcTsKICAgIGRpc1tzXT1rKzE7CiAgICBwcS5wdXNoKHtrLHN9KTsKICAgIHdoaWxlKCFwcS5lbXB0eSgpKQogICAgewogICAgICAgIGF1dG8gdG9wPXBxLnRvcCgpO3BxLnBvcCgpOwogICAgICAgIGxsIHU9dG9wLnNlOwogICAgICAgIGxsIGtjPXRvcC5maTsKICAgICAgICBpZihrYz5kaXNbdV0pIGNvbnRpbnVlOwogICAgICAgIGZvcihhdXRvIGl0OmFkalt1XSkKICAgICAgICB7CiAgICAgICAgICAgIGxsIHY9aXQuZmk7CiAgICAgICAgICAgIGxsIHc9aXQuc2U7CiAgICAgICAgICAgIGxsIHRoZW09MDsKICAgICAgICAgICAgcGFpcjxsbCxsbD5lZD1sdXVbdV1bdl07CiAgICAgICAgICAgIGxsIHN0PWx1dVt1XVt2XS5maTsKICAgICAgICAgICAgbGwgZW49bHV1W3VdW3ZdLnNlOwogICAgICAgICAgICBpZihkaXNbdV0+PXN0ICYmIGRpc1t1XTxlbikgdGhlbT1lbi1kaXNbdV07CgogICAgICAgICAgICBpZihkaXNbdl0gPiBkaXNbdV0gKyB3ICsgdGhlbSkKICAgICAgICAgICAgewogICAgICAgICAgICAgICAgZGlzW3ZdID0gZGlzW3VdICsgdyArIHRoZW07CiAgICAgICAgICAgICAgICBwcS5wdXNoKHtkaXNbdl0sIHZ9KTsKICAgICAgICAgICAgfQogICAgICAgIH0KICAgIH0KfQppbnQgbWFpbigpCnsKICAgIGlvczo6c3luY193aXRoX3N0ZGlvKDApOwogICAgY2luLnRpZSgwKTsKICAgIGNvdXQudGllKDApOwoKICAgIGNpbj4+bj4+bTsKICAgIGNpbj4+YT4+Yj4+az4+ZzsKICAgIGZvcihpbnQgaT0xOyBpPD1nOyBpKyspIGNpbj4+ZzFbaV07CiAgICBmb3IoaW50IGk9MTsgaTw9bTsgaSsrKQogICAgewogICAgICAgIGxsIHUsIHYsIHc7CiAgICAgICAgY2luPj51Pj52Pj53OwogICAgICAgIGFkalt1XS5wdXNoX2JhY2soe3YsIHd9KTsKICAgICAgICBhZGpbdl0ucHVzaF9iYWNrKHt1LCB3fSk7CiAgICAgICAgZ3RbdV1bdl09dzsKICAgICAgICBndFt2XVt1XT13OwogICAgfQogICAgdGdbZzFbMV1dPTE7CiAgICBmb3IoaW50IGk9MTsgaTxnOyBpKyspCiAgICB7CiAgICAgICAgbGwgdT1nMVtpXTsKICAgICAgICBsbCB2PWcxW2krMV07CiAgICAgICAgbGwgY3U9dGdbdV07CiAgICAgICAgbGwgbW9pPXRnW3VdK2d0W3VdW3ZdOwogICAgICAgIGx1dVt1XVt2XT0ge2N1LCBtb2l9OwogICAgICAgIGx1dVt2XVt1XT0ge2N1LCBtb2l9OwogICAgICAgIHRnW3ZdPW1vaTsKICAgIH0KICAgIG1lbXNldCh2aXMsMCxzaXplb2YgdmlzKTsKICAgIGRqcyhhKTsKICAgIGNvdXQ8PGRpc1tiXS0oMStrKTsKICAgIHJldHVybiAwOwp9Cg==