#include <bits/stdc++.h>
using namespace std;
const int len = 1e5 + 5;
int vis[len][2], low[len], num[len], vi[len], cnt, is[len];
vector<int> adj[len], vec, out, second;
void dfs(int u, int t) {
  vis[u][t] = 1;
  vec.push_back(u);
  if (adj[u].size() == 0 && t && out.size() == 0) {
    for (int j = 0; j < vec.size(); j++) out.push_back(vec[j]);
  }
  for (int j = 0; j < adj[u].size(); j++) {
    int v = adj[u][j];
    if (!vis[v][1 - t]) dfs(v, 1 - t);
  }
  vec.pop_back();
}
int draw(int u) {
  int ans = 0;
  vi[u] = 1;
  for (int j = 0; j < adj[u].size(); j++) {
    int v = adj[u][j];
    if (vi[v] == 1)
      ans = 1;
    else if (vi[v] == 0)
      ans = ans | draw(v);
  }
  vi[u] = 2;
  return ans;
}
int main() {
  int n, m, s;
  scanf("%d %d", &n, &m);
  for (int i = 1; i <= n; i++) {
    int k, temp;
    scanf("%d", &k);
    while (k--) {
      scanf("%d", &temp);
      adj[i].push_back(temp);
    }
  }
  scanf("%d", &s);
  dfs(s, 0);
  if (out.size() != 0) {
    printf("Win\n");
    for (int i = 0; i < out.size(); i++) printf("%d ", out[i]);
    printf("\n");
    return 0;
  }
  if (draw(s))
    printf("Draw\n");
  else
    printf("Lose\n");
  return 0;
}
