#include <bits/stdc++.h>
using namespace std;
const int MAXN = 10000;
vector<int> g[MAXN];
vector<int> len[MAXN];
int lf[MAXN];
int rg[MAXN];
int lf_bak[MAXN];
int rg_bak[MAXN];
long long dst[MAXN];
int pl[MAXN];
bool canDraw[MAXN];
set<pair<long long, int> > s;
void relax(int v, long long cost, int p) {
  if (dst[v] > cost) {
    s.erase(make_pair(dst[v], v));
    dst[v] = cost;
    pl[v] = p;
    canDraw[v] = (p == 2);
    s.insert(make_pair(dst[v], v));
  } else if (dst[v] == cost) {
    if (pl[v] != p) canDraw[v] = true;
  }
}
int s1, s2, f;
bool trySolve(bool wantWin) {
  memset(dst, 0x3f, sizeof(dst));
  s.clear();
  relax(s1, 0, 0);
  relax(s2, 0, 1);
  while (!s.empty()) {
    int v = s.begin()->second;
    s.erase(s.begin());
    if (v == f) {
      if (canDraw[v]) return !wantWin;
      return pl[v] == 0;
    }
    if (canDraw[v]) pl[v] = 2;
    for (int i = 0; i < (int)g[v].size(); i++) {
      int nv = g[v][i];
      long long nlen = len[v][i];
      if (nlen < 0) {
        if (pl[v] == 0 || (pl[v] == 2 && !wantWin)) {
          nlen = rg[-nlen - 1] = lf[-nlen - 1];
        } else {
          nlen = lf[-nlen - 1] = rg[-nlen - 1];
        }
      }
      relax(nv, nlen + dst[v], pl[v]);
    }
  }
  return !wantWin;
}
int main() {
  int n, m, k;
  scanf("%d %d %d", &n, &m, &k);
  scanf("%d %d %d", &s1, &s2, &f);
  --s1, --s2, --f;
  for (int i = 0; i < m; i++) {
    int a, b, l;
    scanf("%d %d %d", &a, &b, &l);
    --a, --b;
    g[a].push_back(b);
    len[a].push_back(l);
  }
  for (int i = 0; i < k; i++) {
    int a, b;
    scanf("%d %d %d %d", &a, &b, &lf[i], &rg[i]);
    --a, --b;
    g[a].push_back(b);
    len[a].push_back(-i - 1);
  }
  memcpy(lf_bak, lf, sizeof(lf));
  memcpy(rg_bak, rg, sizeof(rg));
  if (trySolve(1)) {
    printf("WIN\n");
    for (int i = 0; i < k; i++) printf("%d%c", lf[i], " \n"[i == k - 1]);
    return 0;
  }
  memcpy(lf, lf_bak, sizeof(lf));
  memcpy(rg, rg_bak, sizeof(rg));
  if (trySolve(0)) {
    printf("DRAW\n");
    for (int i = 0; i < k; i++) printf("%d%c", lf[i], " \n"[i == k - 1]);
    return 0;
  }
  printf("LOSE\n");
  return 0;
}
