#include <bits/stdc++.h>
using namespace std;
vector<int> G[100005];
bool mark[100005][2];
int vis[100005][2];
int dp[100005][2];
int p[100005][2];
bool hasCycle;
bool f(int v, int j) {
  if (G[v].empty()) return j == 1;
  if (mark[v][j]) return dp[v][j];
  vis[v][j] = 1;
  bool ret = false;
  for (int x : G[v]) {
    if (vis[x][j ^ 1] == 1)
      hasCycle = true;
    else if (f(x, j ^ 1)) {
      p[v][j] = x;
      ret = true;
    }
  }
  vis[v][j] = 0;
  mark[v][j] = 1;
  return dp[v][j] = ret;
}
void print(int v, int j) {
  printf("%d ", v);
  if (p[v][j]) print(p[v][j], j ^ 1);
}
int main() {
  int n, m, s;
  scanf("%d%d", &n, &m);
  for (int i = 1; i <= n; i++) {
    int q, b;
    scanf("%d", &q);
    while (q--) {
      scanf("%d", &b);
      G[i].push_back(b);
    }
  }
  scanf("%d", &s);
  if (f(s, 0)) {
    printf("Win\n");
    print(s, 0);
  } else if (hasCycle)
    printf("Draw\n");
  else
    printf("Lose\n");
  return 0;
}
