#include <bits/stdc++.h>
using namespace std;
vector<long long> e[1000010];
long long vis[1000010][2];
vector<bool> seen(1000010, 0);
bool w;
stack<long long> st;
vector<long long> put;
void kidaj() {
  while (!st.empty()) {
    long long x = st.top();
    put.push_back(x);
    st.pop();
  }
}
void dfs(long long x, long long cur) {
  vis[x][cur] = 1;
  long long y = cur + 1;
  if (y > 1) y %= 2;
  long long l = e[x].size();
  if (cur + l == 0 && !w) {
    w = 1;
    kidaj();
  }
  for (auto& i : e[x]) {
    if (vis[i][y]) continue;
    if (!w) st.push(i);
    dfs(i, y);
    if (!w) st.pop();
  }
}
bool d;
void cyc(long long x) {
  seen[x] = 1;
  for (auto& i : e[x]) {
    long long l = e[i].size();
    if (!l) continue;
    if (!seen[i]) {
      cyc(i);
    }
  }
}
vector<long long> boja(1000010, 0);
void oboji(long long x) {
  boja[x] = 1;
  for (auto& i : e[x]) {
    if (!seen[i]) continue;
    if (boja[i] == 1) d = 1;
    if (boja[i] == 0) oboji(i);
  }
  boja[x] = 2;
}
signed main() {
  ios_base::sync_with_stdio(false);
  cin.tie(nullptr);
  cout.tie(nullptr);
  cerr.tie(nullptr);
  long long n, m;
  cin >> n >> m;
  for (long long i = 1; i <= n; ++i) {
    long long c;
    cin >> c;
    for (long long j = 0; j < c; ++j) {
      long long x;
      cin >> x;
      e[i].push_back(x);
    }
  }
  long long s;
  cin >> s;
  st.push(s);
  dfs(s, 1);
  reverse(put.begin(), put.end());
  if (w) {
    cout << "Win\n";
    for (auto& i : put) cout << i << ' ';
    cout << '\n';
    return 0;
  }
  long long sz = e[s].size();
  bool ok = !(!(sz));
  if (!ok) return cout << "Lose\n", 0;
  cyc(s);
  long long cnt = 0, t = 0;
  for (long long i = 1; i <= n; ++i) {
    if (!seen[i]) continue;
    ++cnt;
    for (auto& j : e[i]) {
      if (seen[j]) ++t;
    }
  }
  for (long long i = 1; i <= n; ++i) {
    if (seen[i] && !boja[i]) oboji(i);
  }
  if (d)
    cout << "Draw\n";
  else
    cout << "Lose\n";
}
