#include <bits/stdc++.h>
using namespace std;
const int maxn = 1e5 + 80;
int dp[maxn][2];
vector<int> v[maxn];
int vis[maxn][2];
int S;
int dfs(int x, int wt) {
  if (vis[x][wt] == 1) return 0;
  if (vis[x][wt] == 2) return dp[x][wt];
  int maxi = -1;
  vis[x][wt] = 1;
  if (!wt) maxi = 1;
  for (int i = 0; i < v[x].size(); i++)
    if (wt)
      maxi = max(maxi, -dfs(v[x][i], 1 - wt));
    else
      maxi = min(maxi, -dfs(v[x][i], 1 - wt));
  if (v[x].size() == 0) maxi = -1;
  vis[x][wt] = 2;
  return dp[x][wt] = maxi;
}
int n, m;
int is[maxn][2];
void out(int x) {
  if (x == 1) {
    puts("Win");
    int st = -1;
    int eg = 0;
    is[S][1] = 1;
    while (1) {
      printf("%d ", S);
      if (v[S].size() == 0) break;
      for (int i = 0; i < v[S].size(); i++) {
        if (is[v[S][i]][eg] == 0 and dfs(v[S][i], eg) == st) {
          S = v[S][i];
          is[S][eg] = 1;
          break;
        }
      }
      st = -st;
      eg = 1 - eg;
    }
  }
  if (x == 0) puts("Draw");
  if (x == -1) puts("Lose");
}
int main() {
  cin >> n >> m;
  for (int i = 1; i <= n; i++) {
    int s;
    scanf("%d", &s);
    while (s--) {
      int x;
      scanf("%d", &x);
      v[i].push_back(x);
    }
  }
  cin >> S;
  out(dfs(S, 1));
  return 0;
}
