#include <bits/stdc++.h>
using namespace ::std;
const long long maxn = 4e5 + 500;
const long long mod = 1e9 + 7;
const long long inf = 1e17 + 500;
vector<long long> ger[maxn];
vector<long long> gerr[maxn];
long long t[maxn];
long long s[maxn];
long long l[maxn];
long long r[maxn];
long long w[maxn];
long long minn[maxn];
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  cout.tie(0);
  long long n, m, k, s1, s2, f;
  cin >> n >> m >> k >> s1 >> s2 >> f;
  for (long long i = 0; i < m; i++) {
    cin >> s[i] >> t[i] >> w[i];
    ger[s[i]].push_back(i);
  }
  for (long long i = m; i < m + k; i++) {
    cin >> s[i] >> t[i] >> l[i] >> r[i];
    w[i] = l[i];
    gerr[s[i]].push_back(i);
  }
  fill(minn, minn + maxn, inf);
  set<pair<pair<long long, long long>, long long> > st;
  st.insert(make_pair(make_pair(0, s1), s1));
  st.insert(make_pair(make_pair(0, s2), s2));
  while (st.size()) {
    pair<pair<long long, long long>, long long> rr = (*st.begin());
    st.erase(rr);
    long long v = rr.first.second;
    long long W = rr.first.first;
    long long pa = rr.second;
    if (minn[v] == inf) {
      minn[v] = W;
      for (auto e : gerr[v]) {
        ger[v].push_back(e);
        if (pa == s1) {
          w[e] = l[e];
        } else {
          w[e] = r[e];
        }
      }
      for (auto e : ger[v]) {
        st.insert(make_pair(make_pair(W + w[e], s[e] ^ t[e] ^ v), pa));
      }
    }
  }
  fill(minn, minn + maxn, inf);
  set<pair<long long, long long> > ty;
  ty.insert(make_pair(0, s1));
  while (ty.size()) {
    pair<long long, long long> r = (*ty.begin());
    ty.erase(r);
    long long v = r.second;
    long long W = r.first;
    if (minn[v] == inf) {
      minn[v] = W;
      for (auto e : ger[v]) {
        ty.insert(make_pair(W + w[e], s[e] ^ t[e] ^ v));
      }
    }
  }
  long long ws1 = minn[f];
  fill(minn, minn + maxn, inf);
  ty.insert(make_pair(0, s2));
  while (ty.size()) {
    pair<long long, long long> r = (*ty.begin());
    ty.erase(r);
    long long v = r.second;
    long long W = r.first;
    if (minn[v] == inf) {
      minn[v] = W;
      for (auto e : ger[v]) {
        ty.insert(make_pair(W + w[e], s[e] ^ t[e] ^ v));
      }
    }
  }
  long long ws2 = minn[f];
  if (ws1 == ws2) {
    cout << "DRAW\n";
  }
  if (ws1 < ws2) {
    cout << "WIN\n";
  }
  if (ws1 > ws2) {
    cout << "LOSE\n";
    return 0;
  }
  for (long long i = m; i < m + k; i++) {
    cout << w[i] << ' ';
  }
}
