#include <bits/stdc++.h>
using namespace std;
int n, m;
const int MAXN = 200100;
int win = 0, ti = 0;
int vis[MAXN][2] = {0};
int vs[MAXN] = {0};
int path[MAXN], cnt;
vector<int> g[MAXN];
bool dfsloop(int u) {
  vs[u] = 1;
  bool f = false;
  for (int i = 0; i < g[u].size(); i++) {
    int v = g[u][i];
    if (vs[v] == 1)
      f = true;
    else if (vs[v] == 0)
      f = dfsloop(v);
    if (f) return true;
  }
  vs[u] = 2;
  return false;
}
void dfs(int u, int ly) {
  vis[u][ly % 2] = 1;
  int sz = g[u].size();
  cnt = ly;
  path[ly] = u;
  if (!sz) {
    if (ly % 2 == 0) {
      win = 1;
      return;
    } else
      ;
  }
  for (int i = 0; i < sz; i++) {
    int v = g[u][i];
    if (vis[v][(ly + 1) % 2] == 0) {
      dfs(v, ly + 1);
      if (win) return;
    }
  }
}
int main() {
  int n, m;
  scanf("%d%d", &n, &m);
  for (int i = 1; i <= n; i++) {
    int ci;
    scanf("%d", &ci);
    while (ci--) {
      int v;
      scanf("%d", &v);
      g[i].push_back(v);
    }
  }
  int s;
  scanf("%d", &s);
  dfs(s, 1);
  if (win) {
    printf("Win\n");
    for (int i = 1; i <= cnt; i++) printf("%d ", path[i]);
  } else {
    bool res = dfsloop(s);
    if (res)
      printf("Draw");
    else
      printf("Lose");
  }
  return 0;
}
