#include <bits/stdc++.h>
using namespace std;
const int N = 1e5 + 2;
vector<int> G[N];
bool instack[N][2];
int dp[N][2];
int dfs(int u, int dep = 0) {
  if (dp[u][dep] != -1) {
    return dp[u][dep];
  }
  dp[u][dep] = 0;
  instack[u][dep] = true;
  for (int v : G[u]) {
    if (instack[v][dep ^ 1]) {
      dp[u][dep] |= 4;
    } else {
      dfs(v, dep ^ 1);
      if (dp[v][dep ^ 1] & 1) {
        dp[u][dep] |= 2;
      }
      if (dp[v][dep ^ 1] & 2) {
        dp[u][dep] |= 1;
      }
      if ((dp[v][dep ^ 1] & 4)) {
        dp[u][dep] |= 4;
      }
    }
  }
  if (G[u].size() == 0) {
    dp[u][dep] |= 2;
  }
  instack[u][dep] = false;
  return dp[u][dep];
}
void Print(int u, int dep = 0) {
  printf("%d ", u);
  instack[u][dep] = true;
  for (int v : G[u])
    if (!instack[v][dep ^ 1]) {
      if ((dp[v][dep ^ 1] & 2) && !dep) {
        Print(v, dep ^ 1);
        break;
      }
      if ((dp[v][dep ^ 1] & 1) && dep) {
        Print(v, dep ^ 1);
        break;
      }
    }
  instack[u][dep] = false;
}
int main() {
  ios ::sync_with_stdio(false);
  cout << fixed << setprecision(16);
  int n, m, c, v, s;
  scanf("%d%d", &n, &m);
  for (int u = 1; u <= n; u++) {
    scanf("%d", &c);
    for (int i = 0; i < c; i++) {
      scanf("%d", &v);
      G[u].push_back(v);
    }
  }
  scanf("%d", &s);
  memset(dp, -1, sizeof dp);
  int result = dfs(s);
  if (result & 1) {
    puts("Win");
    Print(s);
    puts("");
  } else if (result & 4) {
    puts("Draw");
  } else {
    puts("Lose");
  }
  return 0;
}
