#include <bits/stdc++.h>
using namespace std;
const int maxn = 1e5;
const long long inf = 1e18;
long long d[maxn];
int beg[maxn];
vector<pair<int, int> > g[maxn], g2[maxn], adj[maxn];
int w[maxn];
int l[maxn], r[maxn];
void dijkstraH(int s1, int s2) {
  fill(d, d + maxn, inf);
  d[s1] = d[s2] = 0;
  set<pair<long long, int> > st;
  st.insert({0, s1});
  st.insert({0, s2});
  beg[s1] = s1;
  beg[s2] = s2;
  while (!st.empty()) {
    int v = st.begin()->second;
    st.erase(st.begin());
    for (auto u : g2[v]) {
      if (beg[v] == s1)
        w[u.second] = l[u.second];
      else
        w[u.second] = r[u.second];
      g[v].push_back(u);
    }
    for (auto u : g[v]) {
      if (d[v] + w[u.second] < d[u.first]) {
        st.erase({d[u.first], u.first});
        d[u.first] = d[v] + w[u.second];
        beg[u.first] = beg[v];
        st.insert({d[u.first], u.first});
      }
    }
  }
}
void dijkstra(int v) {
  fill(d, d + maxn, inf);
  d[v] = 0;
  set<pair<long long, int> > st;
  st.insert({0, v});
  while (!st.empty()) {
    int u = st.begin()->second;
    st.erase(st.begin());
    for (auto x : adj[u])
      if (d[u] + w[x.second] < d[x.first]) {
        st.erase({d[x.first], x.first});
        d[x.first] = d[u] + w[x.second];
        st.insert({d[x.first], x.first});
      }
  }
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0);
  cout.tie(0);
  int n, m, k;
  cin >> n >> m >> k;
  int s1, s2, f;
  cin >> s1 >> s2 >> f;
  for (int i = 0; i < m; ++i) {
    int u, v, c;
    cin >> u >> v >> c;
    g[u].push_back({v, i});
    w[i] = c;
  }
  for (int i = 0; i < k; ++i) {
    int u, v;
    cin >> u >> v >> l[m + i] >> r[m + i];
    g2[u].push_back({v, m + i});
  }
  dijkstraH(s1, s2);
  for (int i = 1; i <= n; ++i)
    for (auto x : g[i]) adj[x.first].push_back({i, x.second});
  dijkstra(f);
  if (d[s1] > d[s2])
    cout << "LOSE" << endl;
  else if (d[s1] == d[s2])
    cout << "DRAW" << endl;
  else
    cout << "WIN" << endl;
  for (int i = 0; d[s1] <= d[s2] && i < k; ++i)
    cout << (w[m + i] ? w[m + i] : l[m + i]) << ' ';
  cout << endl;
  return 0;
}
