#include <bits/stdc++.h>
using namespace std;
const int N = 2e5 + 7;
struct edge {
  int to, next;
} e[N << 1];
int inq[N], q[N], top, n, m, i, j, k, root, cao;
int scc, low[N], dfn[N], ind, hav[N], dp[N][2], from[N][2], vis[N], bl[N], cnt,
    head[N];
void ins(int u, int v) {
  e[++cnt].to = v;
  e[cnt].next = head[u];
  head[u] = cnt;
}
void dfs(int a) {
  vis[a] = inq[a] = 1;
  low[a] = dfn[a] = ++ind;
  q[++top] = a;
  for (int c = head[a]; c; c = e[c].next)
    if (!vis[e[c].to]) {
      dfs(e[c].to);
      low[a] = min(low[a], low[e[c].to]);
    } else if (inq[e[c].to])
      low[a] = min(low[a], dfn[e[c].to]);
  if (low[a] == dfn[a]) {
    scc++;
    int now = -1;
    while (now != a) {
      now = q[top--];
      inq[now] = 0;
      bl[now] = scc;
      ++hav[scc];
    }
  }
}
void work(int x, int flag, int fa) {
  if (dp[x][flag]) return;
  from[x][flag] = fa;
  dp[x][flag] = 1;
  if (hav[bl[x]] > 1) cao = true;
  for (int i = head[x]; i; i = e[i].next) work(e[i].to, (flag + 1) % 2, x);
}
int main() {
  ios::sync_with_stdio(false);
  cin.tie(0);
  for (cin >> n >> m, i = 1; i <= n; ++i) {
    for (cin >> j; j--;) cin >> k, ins(i, k);
  }
  cin >> root;
  dfs(root);
  work(root, 0, 0);
  for (i = 1; i <= n; ++i)
    if (vis[i] && dp[i][1] && !head[i]) {
      top = 0;
      k = 1;
      for (; i; i = from[i][k], k++, k %= 2) q[++top] = i;
      cout << "Win" << endl;
      while (top) cout << q[top--] << " ";
      cout << endl;
      return 0;
    }
  if (cao)
    cout << "Draw" << endl;
  else
    cout << "Lose" << endl;
}
