11 20
1 2
2 7 6
1 7
4 10 9 3 2
2 9 2
1 3
0
0
3 1 6 7
4 11 7 5 6
2 2 8
4
 5 5
1 2
1 3
2 1 4
1 5
0
1
 5 5
1 2
1 3
2 2 4
1 5
0
1
 4 3
1 2
1 3
1 1
0
1
 6 6
1 2
2 3 6
1 4
0
1 3
1 5
2
 5 5
1 2
2 3 5
1 4
1 2
0
1
 5 5
2 2 3
1 4
1 5
1 3
0
1
 6 6
1 2
2 3 6
1 4
1 5
1 1
0
1
 5 5
1 2
2 4 3
0
1 5
1 2
1
 6 6
2 2 3
1 4
1 4
1 5
1 6
0
1
 5 5
2 2 3
2 4 5
1 5
0
0
1
 5 5
2 2 4
1 3
1 4
1 5
0
1
 57 39
1 57
1 40
1 38
0
0
0
1 20
0
0
1 53
0
0
0
1 36
1 40
1 27
1 11
1 7
1 35
0
1 23
1 44
1 14
1 54
0
1 21
1 28
1 37
1 38
1 26
1 3
0
1 14
0
1 1
1 10
1 52
1 45
0
1 16
0
1 22
1 51
1 48
1 30
1 30
0
1 19
1 33
0
1 45
1 42
1 49
0
1 23
0
1 31
15
 15 20
3 4 9 7
0
1 1
3 5 6 1
1 13
0
4 8 15 4 2
1 7
1 2
0
1 4
0
2 3 11
1 5
2 1 6
4
 5 5
2 2 3
1 4
0
1 5
1 4
2
 6 6
2 2 3
1 4
1 5
0
1 6
1 4
1
 4 4
2 2 4
1 3
1 1
0
3
 2 1
0
1 1
1
 8 8
2 2 5
1 3
1 7
0
1 6
1 8
1 4
1 4
1
 5 5
1 2
1 3
1 4
2 3 5
0
1
 4 4
2 2 3
1 4
1 4
0
1
 5 5
1 2
2 3 4
0
1 5
1 3
1
 6 6
1 2
2 3 4
1 5
1 5
1 6
0
1
 3 2
1 2
1 1
0
3
 5 5
2 2 3
1 5
1 4
1 5
0
1
 92 69
1 76
1 14
1 9
0
1 46
1 80
0
0
1 77
0
1 53
1 81
1 61
1 40
0
1 20
1 71
1 24
1 54
1 82
1 23
0
1 63
1 25
1 38
1 68
0
1 65
0
1 76
1 55
1 87
1 1
1 37
1 68
1 30
1 17
1 19
0
1 16
1 69
0
1 60
1 86
0
1 44
1 32
1 10
1 8
0
0
0
0
0
1 2
1 39
0
1 74
1 5
1 28
1 79
1 32
1 34
0
1 81
1 85
1 6
1 18
0
0
1 58
1 88
1 7
1 78
1 43
1 5
1 61
1 90
1 31
1 75
1 72
1 80
1 13
0
0
1 21
1 70
1 30
0
1 68
1 3
1 62
91
 5 5
2 2 4
1 3
1 1
1 5
0
1
 3 3
1 2
2 1 3
0
1
 6 6
2 2 4
1 3
0
1 5
1 6
1 3
1
 53 38
0
1 35
0
1 32
0
0
1 49
1 25
0
1 19
0
0
1 25
1 48
1 50
1 2
1 4
1 50
1 34
1 4
1 46
0
1 4
1 5
1 43
1 8
1 40
1 47
1 21
1 43
0
1 10
1 27
1 33
1 20
1 26
0
0
0
1 53
0
0
1 45
1 23
1 7
1 52
1 51
0
1 29
1 48
1 36
1 2
1 28
2
 8 8
2 2 3
1 4
1 4
1 5
1 6
0
1 8
1 7
1
 5 5
1 2
1 3
1 4
2 2 5
0
1

Win
4 10 11 8
 Win
1 2 3 1 2 3 4 5
 Draw
 Draw
 Lose
 Win
1 2 3 4 2 5
 Lose
 Win
1 2 3 4 5 1 2 6
 Win
1 2 4 5 2 3
 Lose
 Lose
 Lose
 Draw
 Win
4 5 13 3 1 4 5 13 3 1 9 2
 Draw
 Lose
 Win
3 1 2 3 1 4
 Lose
 Lose
 Draw
 Lose
 Lose
 Lose
 Lose
 Win
1 3 4 5
 Lose
 Win
1 2 3 1 4 5
 Draw
 Lose
 Draw
 Lose
 Win
1 2 3 4 2 3 4 5

//@Author: Ozhetov Arsen Nurlanuly
#pragma comment (linker, "/stack:20000000")
#pragma GCC optimize ("Ofast")
#pragma GCC target ("sse,sse2,sse3,ssse3,sse4,popcnt,abm,mmx")
#include <bits/stdc++.h>
#include <ext/pb_ds/assoc_container.hpp>
#include <ext/pb_ds/tree_policy.hpp>
#include <ext/pb_ds/detail/standard_policies.hpp>
#define sz(s) (int)(s.size ())
#define all(s) s.begin (), s.end ()
#define rall(s) s.rbegin (), s.rend ()
#define Unique(s) s.resize (unique (all (s)) - s.begin ());
#define fi first
#define se second
#define endl "\n"
#define debug(...) fprintf (stderr, __VA_ARGS__)
#define Time clock () * 1.0 / CLOCKS_PER_SEC
#define sqr(x) ((x) * 1ll * (x))
#define lcm(a, b) ((a) / gcd (a, b) * (b))
#define bit(x) __builtin_popcount (x)
#define bitll(x) __builtin_popcountll (x)
#define foreach(it, s) for (__typeof (s.begin ()) it = s.begin (); it != s.end (); ++it)
#define rep(a, b, c) for (int a = b; a <= c; ++a)
#define per(a, b, c) for (int a = b; a >= c; --a)
#define _ ios_base::sync_with_stdio (false); cin.tie (NULL); cout.tie (NULL);
using namespace std;
using namespace __gnu_pbds;
template<typename T1, typename T2>inline bool updmin (T1 &a, T2 &b) { return a > b ? a = b, 1 : 0; }
template<typename T1, typename T2>inline bool updmax (T1 &a, T2 &b) { return a < b ? a = b, 1 : 0; }
template<typename T>inline T gcd (T &a, T &b) { while (a && b) a > b ? a %= b : b %= a; return a + b; }
typedef unsigned long long ull;
typedef long long ll;
typedef long double ld;
typedef tree<pair<int, int>, null_type, less<pair<int, int>>, rb_tree_tag, tree_order_statistics_node_update> ordered_set;
const double PI = (double)(acos (-1.0)), EPS = (double)(1e-7);
const int MOD = 1e9 + 7, PR = 15937, INF = 1 << 30, MXN = 3e5 + 17;
const int dx[] = {0, 0, 1, -1}, dy[] = {1, -1, 0, 0};

inline int readChar ();
template<class T = int>inline T readInt ();
template<class T>inline void writeInt (T x, char end = 0);
inline void writeChar (int x); 
inline void writeWord (const char *s);

static const int buf_size = 4096;

inline int getChar () {
  static char buf[buf_size];
  static int len = 0, pos = 0;
  if (pos == len)
    pos = 0, len = fread (buf, 1, buf_size, stdin);
  if (pos == len) return -1;
  return buf[pos++];
}

inline int readChar () {
  int c = getChar ();
  while (c <= 32) c = getChar ();
  return c;
}

template<class T>inline T readInt () {
  int s = 1, c = readChar ();
  T x = 0;
  if (c == '-') s = -1, c = getChar ();
  while ('0' <= c && c <= '9')
    x = x * 10 + c - '0', c = getChar ();
  return s == 1 ? x : -x;
}

static int write_pos = 0;
static char write_buf[buf_size];

inline void writeChar (int x) {
  if (write_pos == buf_size)
    fwrite (write_buf, 1, buf_size, stdout), write_pos = 0;
  write_buf[write_pos++] = x;
}

template<class T>inline void writeInt (T x, char end) {
  if (x < 0) writeChar ('-'), x = -x;
  char s[24];
  int n = 0;
  while (x || !n)
    s[n++] = '0' + x % 10, x /= 10;
  while (n--) writeChar (s[n]);
  if (end) writeChar (end);
}

inline void writeWord (const char *s) {
  while (*s) writeChar (*s++);
}

struct Flusher {
  ~Flusher () {
    if (write_pos)
      fwrite (write_buf, 1, write_pos, stdout), write_pos = 0;
  }
} flusher;

int n, m, s;

int p[MXN], used[MXN];

bool ok1;

vector<int>g[MXN];
 
bool dfs (int v, bool Cur) {
  used[v] = 1;
  bool ok2 = 0;
  for (auto &to : g[v])
    if (used[to] == 1)
      ok1 = ok2 = 1;
  if (!ok2) {
    int now = 0, res = 0;
    for (auto &to : g[v])
      if (!used[to]) {
        p[to] = v;
        res += (dfs (to, Cur ^ 1));
        ++now;
      }
    if (!now && Cur) {
      writeWord ("Win\n");
      vector<int>ans;
      int now = v;
      while (now != s)
        ans.push_back (now),
        now = p[now];
      ans.push_back (s);
      reverse (all (ans));
      for (auto &to : ans)
        writeInt (to, ' ');
      exit (0);
    }
    if (now == res)
      return 0;
  }
  used[v] = 2;
}

inline void Solve () {
  n = readInt ();
  m = readInt ();
  rep (i, 1, n) {
    int cnt = readInt ();
    rep (j, 1, cnt) {
      int v = readInt ();
      g[i].push_back (v);
    }
  }
  s = readInt ();
  dfs (s, 0);
  if (ok1)
    writeWord ("Draw");
  else
    writeWord ("Lose");
}

inline void Clear () {}

int main () { //_
  unsigned int FOR;
  asm ("rdtsc" : "=A" (FOR)); srand (FOR);
  #define HaveTestCase 0
  #define LightOjTestCase 0
#ifdef _DeSeiSH_
  freopen ("Input.txt", "r", stdin);
  freopen ("OutputSlow.txt", "w", stdout);
#endif
  int T = 1;
  if (HaveTestCase) T = readInt ();
  rep (i, 1, T) {
    if (LightOjTestCase)
      writeWord ("Case "), writeInt (i, ':');
    Solve ();
    if (i != T) Clear ();
  }
#ifdef _DeSeiSH_
  debug ("\ntime: %.6lf\n", Time);
#endif
  return 0;
}