#include <bits/stdc++.h>
using namespace std;
const int maxn = 200005;
struct edges {
  int next, to;
} ed[maxn << 2];
int head[maxn], ip;
void add(int u, int v) {
  ed[++ip].next = head[u];
  ed[ip].to = v;
  head[u] = ip;
}
int n, m;
int d[maxn];
bool f[maxn][2], cir;
int vis[maxn][2], nxt[maxn][2];
bool dfs(int u, int s) {
  if (d[u] == 0) return s == 1;
  if (vis[u][s] == 2) return f[u][s];
  vis[u][s] = 1;
  int v;
  bool flag = false;
  for (int i = head[u]; i; i = ed[i].next) {
    v = ed[i].to;
    if (vis[v][s ^ 1] == 1) {
      cir = true;
      continue;
    }
    if (dfs(v, s ^ 1)) flag = 1, nxt[u][s] = v;
  }
  vis[u][s] = 2;
  return f[u][s] = flag;
}
void write(int u, int s) {
  printf("%d ", u);
  if (nxt[u][s]) write(nxt[u][s], s ^ 1);
}
int main() {
  scanf("%d%d", &n, &m);
  int t, x;
  for (int i = 1; i <= n; i++) {
    scanf("%d", &t);
    for (int j = 1; j <= t; j++) {
      scanf("%d", &x);
      add(i, x);
      d[i]++;
    }
  }
  cir = false;
  int st;
  scanf("%d", &st);
  if (dfs(st, 0)) {
    printf("Win\n");
    write(st, 0);
  } else if (cir)
    printf("Draw\n");
  else
    printf("Lose\n");
  return 0;
}
