#include <bits/stdc++.h>
using namespace std;
long long int poww(long long int x, long long int y) {
  long long int res = 1;
  x %= 1000000007;
  for (; y; y >>= 1) {
    if (y & 1) res = res * x % 1000000007;
    x = x * x % 1000000007;
  }
  return res;
}
int viss[100005], vis[100005][2], cyc[100005];
int par[100005][2];
vector<int> adj[100005];
void dfs(int u, int parity) {
  vis[u][parity] = 1;
  for (int i = 0; i < adj[u].size(); i++) {
    int x = adj[u][i];
    if (!vis[x][(parity ^ 1)]) {
      par[x][(parity ^ 1)] = u;
      dfs(x, parity ^ 1);
    }
  }
}
void findcycle(int u) {
  if (cyc[u] == 1) {
    puts("Draw");
    exit(0);
  }
  cyc[u] = 1;
  for (int i = 0; i < adj[u].size(); i++) findcycle(adj[u][i]);
  cyc[u] = 0;
}
int main() {
  int n, m;
  cin >> n >> m;
  for (int i = 1; i <= n; i++) {
    int tmp;
    cin >> tmp;
    for (int j = 1; j <= tmp; j++) {
      int x;
      cin >> x;
      adj[i].push_back(x);
    }
  }
  int source;
  cin >> source;
  dfs(source, 0);
  int f = 0;
  int start;
  for (int i = 1; i <= n; i++) {
    if (vis[i][1] == 1 && adj[i].size() == 0) {
      f = 1;
      start = i;
      break;
    }
  }
  int st = 1;
  vector<int> v;
  if (f == 1) {
    while (1) {
      v.push_back(start);
      if (start == source && st == 0) break;
      start = par[start][st];
      st ^= 1;
    }
    puts("Win");
    reverse(v.begin(), v.end());
    for (int i = 0; i < v.size(); i++) cout << v[i] << " ";
    return 0;
  }
  findcycle(source);
  puts("Lose");
  return 0;
}
