#include <bits/stdc++.h>
#pragma comment(linker, "/STACK:268435456")
using namespace std;
template <typename T1, typename T2>
istream& operator>>(istream& in, pair<T1, T2>& t) {
  return in >> t.first >> t.second;
}
template <typename T1, typename T2>
ostream& operator<<(ostream& out, pair<T1, T2>& t) {
  return out << t.first << " " << t.second;
}
template <typename T>
istream& operator>>(istream& in, vector<T>& t) {
  for (long long i = 0; i < t.size(); i++) in >> t[i];
  return in;
}
template <typename T>
ostream& operator<<(ostream& out, vector<T>& t) {
  for (long long i = 0; i < t.size(); i++) out << t[i] << " ";
  return out;
}
struct G {
  vector<long long> to, rev;
  long long stat[2] = {-1, -1};
  long long left[2] = {-1, -1};
  long long p[2] = {-1, -1};
};
vector<G> g;
void bfs() {
  queue<pair<long long, long long> > que;
  for (long long i = 0; i < g.size(); i++) {
    g[i].left[0] = g[i].left[1] = g[i].to.size();
    if (g[i].to.size() == 0) {
      g[i].stat[0] = 0;
      g[i].stat[1] = 0;
      que.push({i, 0});
      que.push({i, 1});
    }
  }
  while (!que.empty()) {
    long long v = que.front().first;
    long long who = que.front().second;
    que.pop();
    long long stat = g[v].stat[who];
    for (long long u : g[v].rev) {
      if (g[u].stat[!who] != -1) continue;
      if (who == stat) {
        g[u].stat[!who] = !who;
        g[u].p[!who] = v;
        que.push({u, !who});
      } else {
        g[u].left[!who]--;
        if (g[u].left[!who] == 0) {
          g[u].stat[!who] = who;
          g[u].p[!who] = v;
          que.push({u, !who});
        }
      }
    }
  }
}
void res(long long v, long long who) {
  if (v == -1) return;
  cout << v + 1 << " ";
  res(g[v].p[who], !who);
}
signed main() {
  long long n, m;
  cin >> n >> m;
  g.resize(n);
  for (long long i = 0; i < n; i++) {
    long long sz;
    scanf("%lld", &sz);
    for (long long j = 0; j < sz; j++) {
      long long to;
      scanf("%lld", &to);
      to--;
      g[i].to.push_back(to);
      g[to].rev.push_back(i);
    }
  }
  bfs();
  long long s;
  cin >> s;
  s--;
  if (g[s].stat[1] == 1) {
    puts("Win");
    res(s, 1);
    cout << endl;
  } else if (g[s].stat[1] == -1) {
    puts("Draw");
  } else if (g[s].stat[1] == 0) {
    puts("Lose");
  }
  return 0;
}
