#include <bits/stdc++.h>
using namespace std;
const int MOD = 1000000007;
vector<int> adj[111111];
int visited[111111][2];
pair<int, int> parent[111111][2];
bool can_tie = false;
void go(int v, int c) {
  if (visited[v][c] == 1) can_tie = true;
  if (visited[v][c]) return;
  visited[v][c] = 1;
  for (int u : adj[v]) {
    if (!parent[u][1 - c].first) parent[u][1 - c] = {v, c};
    go(u, 1 - c);
  }
  visited[v][c] = 2;
}
int main() {
  int N, M;
  scanf("%d%d", &N, &M);
  for (int i = (1); i < (N + 1); ++i) {
    int C;
    scanf("%d", &C);
    for (int j = 0; j < (C); ++j) {
      int u;
      scanf("%d", &u);
      adj[i].push_back(u);
    }
  }
  int s;
  scanf("%d", &s);
  go(s, 0);
  for (int i = (1); i < (N + 1); ++i)
    if (adj[i].empty() && visited[i][1]) {
      printf("Win\n");
      vector<int> pth;
      pair<int, int> cur = {i, 1};
      while (cur != pair<int, int>{s, 0}) {
        pth.push_back(cur.first);
        cur = parent[cur.first][cur.second];
      }
      pth.push_back(s);
      reverse(pth.begin(), pth.end());
      for (auto v : pth) printf("%d ", v);
      printf("\n");
      return 0;
    }
  if (can_tie) {
    printf("Draw\n");
  } else {
    printf("Lose\n");
  }
}
