#include<bits/stdc++.h>
#define r(i,n) for(int i=0;i<n;i++)
#define INF 1e9
using namespace std;
int main(){
  int n,m,l,k,a,h,t1,t2,t3;
  while(cin>>n>>m>>l>>k>>a>>h,n){
    set<int>q;q.insert(a),q.insert(h);
    int b[n][n],e,x[n][n];
    r(i,n)r(j,n)x[i][j]=b[i][j]=INF;
    r(i,l)cin>>e,q.insert(e);
    r(i,k)cin>>t1>>t2>>t3,b[t1][t2]=b[t2][t1]=t3;
    r(o,n)r(i,n)r(j,n)b[i][j]=min(b[i][j],b[i][o]+b[o][j]);
    r(i,n)if(q.count(i))r(j,n)if(q.count(j))if(b[i][j]<=m)x[i][j]=b[i][j];
    r(o,n)r(i,n)r(j,n)x[i][j]=min(x[i][j],x[i][o]+x[o][j]);
    if(x[a][h]>=INF)cout<<"Help!"<<endl;
    else if(x[a][h]<m)cout<<x[a][h]<<endl;
    else cout<<x[a][h]*2-m<<endl;
  }
}