import std.stdio;
import std.c.stdio;
import std.range;
import std.array;
import std.functional;
import std.algorithm;
import std.conv;
import std.container;
import std.math;
import std.numeric;
import std.string;
import std.c.string;
import std.regex;
import std.typecons;

const INF = int.max / 4;

struct Edge {
    int from, to, cost;
}
 
void main() {
    int N, M, L, K, A, H;
    Edge[][] G;
    bool[] F;
    bool input() {
        scanf("%d %d %d %d %d %d\n", &N, &M, &L, &K, &A, &H);
        if (N == 0 && M == 0 && L == 0 && K == 0 && A == 0 && H == 0) return false;
        G = new Edge[][N];
        F = new bool[N];
        foreach (i; 0 .. L) {
            int x; scanf("%d", &x);
            F[x] = true;
        }
        foreach (i; 0 .. K) {
            int X, Y, T;
            scanf("%d %d %d\n", &X, &Y, &T);
            G[X] ~= Edge(X, Y, T);
            G[Y] ~= Edge(Y, X, T);
        }
        return true;
    }
    void solve() {
        struct State {
            int v, r;
            int cost;
        }
        auto D = new int[][](N, M + 1);
        foreach (i; 0 .. N) D[i][] = INF;
        BinaryHeap!(Array!State, "a.cost > b.cost") PQ;
        D[A][M] = 0;
        PQ.insert(State(A, M, 0));
        while (!PQ.empty) {
            State cur = PQ.front; PQ.removeFront;
            if (F[cur.v]) {
                for (int i = cur.r + 1; i <= M; i++) {
                    int ncost = cur.cost + i - cur.r;
                    if (D[cur.v][i] > ncost) {
                        D[cur.v][i] = ncost;
                        PQ.insert(State(cur.v, i, ncost));
                    }
                }
            }
            foreach (e; G[cur.v]) {
                int nr = cur.r - e.cost,
                    ncost = cur.cost + e.cost;
                if (nr < 0) continue;
                if (D[e.to][nr] > ncost) {
                    D[e.to][nr] = ncost;
                    PQ.insert(State(e.to, nr, ncost));
                }
            }
        }
        int Ans = D[H].reduce!min;
        writeln(Ans == INF ? "Help!" : Ans.to!string);
    }
    while (input) solve;
}