#include <bits/stdc++.h>
using namespace std;
typedef struct {
  int x;
  int t;
} Res;
Res now, temp;
vector<int> G[100005];
int ok, vis[100005][2], out[100005], flag[100005];
queue<Res> q;
void Print(int x, int y) {
  if (vis[x][y] != -1) Print(vis[x][y], y ^ 1);
  printf("%d ", x);
}
void Sech(int x) {
  int i, v;
  flag[x] = 1;
  for (i = 0; i < G[x].size(); i++) {
    v = G[x][i];
    if (flag[v] == 1)
      ok = 1;
    else if (flag[v] == 0)
      Sech(v);
  }
  flag[x] = 2;
}
int main(void) {
  int n, m, i, k, x;
  scanf("%d%d", &n, &m);
  for (i = 1; i <= n; i++) {
    scanf("%d", &x);
    out[i] = x;
    while (x--) {
      scanf("%d", &k);
      G[i].push_back(k);
    }
  }
  scanf("%d", &k);
  vis[k][0] = -1;
  now.x = k, now.t = 0;
  q.push(now);
  while (q.empty() == 0) {
    now = q.front();
    q.pop();
    for (i = 0; i < G[now.x].size(); i++) {
      temp.x = G[now.x][i];
      temp.t = now.t ^ 1;
      if (vis[temp.x][temp.t] == 0) {
        vis[temp.x][temp.t] = now.x;
        q.push(temp);
      }
    }
  }
  for (i = 1; i <= n; i++) {
    if (out[i] == 0) {
      if (vis[i][1]) {
        printf("Win\n");
        Print(i, 1);
        puts("");
        return 0;
      }
    }
  }
  Sech(k);
  if (ok)
    printf("Draw\n");
  else
    printf("Lose\n");
  return 0;
}
