#include <bits/stdc++.h>
using namespace std;
const int N = 1e5 + 1;
int n, m, s;
bool vis[N][2];
int par[N][2];
struct Graph {
  bool vis[N];
  bool stk[N];
  vector<int> adj[N];
} graph;
void input() {
  cin >> n >> m;
  for (int i = 1; i <= n; ++i) {
    int k;
    cin >> k;
    for (int j = 0; j < k; ++j) {
      int v;
      cin >> v;
      graph.adj[i].push_back(v);
    }
  }
  cin >> s;
}
bool dag(int u) {
  graph.vis[u] = 1;
  graph.stk[u] = 1;
  for (int v : graph.adj[u]) {
    if (!graph.vis[v]) {
      if (!dag(v)) {
        return 0;
      }
    } else if (graph.stk[v]) {
      return 0;
    }
  }
  graph.stk[u] = 0;
  return 1;
}
void dfs(int u, int p) {
  vis[u][p] = 1;
  for (int v : graph.adj[u]) {
    if (!vis[v][!p]) {
      par[v][!p] = u;
      dfs(v, !p);
    }
  }
}
void print_path(int u, int p) {
  if (u != s || p) {
    print_path(par[u][p], !p);
  }
  cout << u << " ";
}
void solve() {
  dfs(s, 0);
  for (int i = 1; i <= n; ++i) {
    if (graph.adj[i].empty() && vis[i][1]) {
      cout << "Win\n";
      print_path(i, 1);
      cout << "\n";
      return;
    }
  }
  cout << (dag(s) ? "Lose\n" : "Draw\n");
}
int main() {
  ios_base::sync_with_stdio(false);
  cin.tie(0), cout.tie(0);
  input();
  solve();
}
