#include "testlib.h"
#include<bits/stdc++.h>
using namespace std;
#define nmax 100001
#define mmax 500001

struct edge{
    int u, v;
} e[mmax];
int m, n, sumin[nmax], sumout[nmax];

void readInput() {
    n = inf.readInt();
    m = inf.readInt();
    for (int i = 1; i <= m; i++) {
        e[i].u = inf.readInt();
        e[i].v = inf.readInt();
    }
}


void readOutput() {
    string ak = ans.readString();
    string ok = ouf.readString();
    if (ok != "YES" && ok != "NO")
        quitf(_wa, "Bận cần ghi ra YES hoặc NO ở dòng đầu tiên!\n");

    if (ok == "NO") {
        if (ak != "NO")
            quitf(_wa, "Jury: YES, Your: NO!\n");
        quitf(_ok, "Ơ mây zing, gút chóp em. Không có phương án viết số hợp lệ!\n");
    }
    memset(sumin, 0, sizeof sumin);
    memset(sumout, 0, sizeof sumout);
    for (int i = 1; i <= m; i++) {
        int x = ouf.readInt(1, 1e9);
        sumout[e[i].u] += x;
        sumin[e[i].v] += x;
    }
    for (int u = 1; u <= n; u++)
        if (sumin[u] != sumout[u])
            quitf(_wa, "Tổng các số trên các cung đi vào và đi ra của đỉnh %d không bằng nhau!\n", u);

    quitf(_ok, "Ơ mây zing, gút chóp em.");
}

int main(int c, char **ars) {
    registerTestlibCmd(c, ars);
    readInput();
    readOutput();
    return 0;
}
