import java.util.*; public class WarshallFloyd { public static void main(String[] args) { Scanner sc = new Scanner(System.in); while(true) { int n = sc.nextInt(), m = sc.nextInt(), l = sc.nextInt(), k = sc.nextInt(), a = sc.nextInt(), h = sc.nextInt(); if(n == 0) break; int[][] AM = new int[n][n]; for(int[] tmp : AM) Arrays.fill(tmp, 1 << 28); Set freezers = new HashSet(); freezers.add(a); freezers.add(h); for(int i = 0; i < l; i++) freezers.add(sc.nextInt()); for(int i = 0; i < k; i++) { int src = sc.nextInt(), des = sc.nextInt(), cost = sc.nextInt(); AM[src][des] = AM[des][src] = cost; } WarshallFloyd(AM, n); for(int i = 0; i < n; i++) for(int j = 0; j < n; j++) if(AM[i][j] > m || !freezers.contains(i) || !freezers.contains(j)) AM[i][j] = 1 << 28; WarshallFloyd(AM, n); if(AM[a][h] == 1 << 28) { System.out.println("Help!"); } else { System.out.println(AM[a][h] + Math.max(0, AM[a][h] - m)); } } } static void WarshallFloyd(int[][] AM, int n) { for(int k = 0; k < n; k++) for(int i = 0; i < n; i++) for(int j = 0; j < n; j++) AM[i][j] = Math.min(AM[i][j], AM[i][k] + AM[k][j]); } }