#include<stdio.h>
int N,M;
int f(int T,int G,int H,int r[100][100],int l[100],int m){
  int i,s,k,min=10000000;
  if(G==H){
    m-=T;
    return m;
  }
  for(i=0;i<N;i++){
    if(r[G][i]!=0&&T>=r[G][i]&&l[i]!=2){
      m+=r[G][i];
      T-=r[G][i];
      if(l[i]==1){
	m+=M-T;
	s=M-T;
	T=M;
	l[i]=2;
      }//printf("%d %d,",i,m);
      k=f(T,i,H,r,l,m);
      if(min>k){
	min=k;
      }
      if(l[i]==2){
	T-=s;
	l[i]=1;
	m-=s;
      }
      T+=r[G][i];
      m-=r[G][i];
    }
  }
  return min;     
}

int main(){
  int L,K,A,H;
  int i,n,a,b,t,m=10000000;
  while(1){
    scanf("%d %d %d %d %d %d",&N,&M,&L,&K,&A,&H);
    if((N+M+L+K+A+H)==0)break;
    int r[100][100]={{0}};
    int l[100]={0};
    for(i=0;i<L;i++){
      scanf("%d",&n);
      l[n]=1;
    }
    for(i=0;i<K;i++){
      scanf("%d %d %d",&a,&b,&t);
      r[a][b]=t;
      r[b][a]=t;
    }
    m=f(M,A,H,r,l,0);
    if(m==10000000)printf("Help!\n");
    else          printf("%d\n",m);
  }
  return 0;
}