#include "testlib.h"
#include<bits/stdc++.h>
using namespace std;
#define nmax 100002
typedef long long ll;
struct edge {
    int u, v, w, del;
} e[2 * nmax];
int n, m, head[nmax], _link[2 * nmax];

void readJuryInput() {
    n = inf.readInt();
    m = inf.readInt();
    for (int i = 1; i <= m; i++) {
        int u, v, w;
        u = inf.readInt();
        v = inf.readInt();
        w = inf.readInt();
        e[i] = {u, v, w, 0};
        e[i + m] = {v, u, w, 0};
    }
    memset(head, 0, sizeof head);
    for (int i = 1; i <= 2 * m; i++) {
        _link[i] = head[e[i].u];
        head[e[i].u] = i;
    }
}
bool check(int u, int v, ll& W) {
    for (int i = head[u]; i; i = _link[i])
        if (e[i].v == v && !e[i].del) {
            W -= e[i].w;
            e[i].del = 1;
            e[i > m ? i - m : i + m].del = 1;
            return 1;
        }
    return 0;
}
void readJuryOutput() {
    ll as, os;
    as = ans.readLong();
    os = ouf.readLong();
    if (os != as)
        quitf(_wa, "Jury: %d, Your: %d!\n", as, os);
    if (as == -1) {
        if (!ouf.seekEof())
            quitf(_wa, "Dữ liệu ra chưa đúng định dạng!\n");

        quitf(_ok, "Không có đường đi thỏa mãn!\n");
    }
    int u = ouf.readInt(1, n);
    if (u != 1)
        quitf(_wa, "Đường đi cần phải xuất phát từ địa điểm 1!\n");

    while (!ouf.seekEof()) {
        int v = ouf.readInt(1, n);
        if (!check(u, v, os))
            quitf(_wa, "Đường đi từ địa điểm %d đến địa điểm %d chưa đúng!\n", u, v);
        u = v;
    }
    if (os != 0)
        quitf(_wa, "Độ dài đương đi chưa đúng!\n");

    if (u != 1)
        quitf(_wa, "Đường đi cần phải kết thúc tại địa điểm 1!\n");
    quitf(_ok, "Chúc mừng, bạn rất có năng khiếu làm hướng dẫn viên du lịch!\n");

}
int main(int c, char **ars) {
    registerTestlibCmd(c, ars);
    readJuryInput();
    readJuryOutput();
    return 0;
}
