#include <bits/stdc++.h>
using namespace std;
const long long MOD = 1e9 + 7;
const long long LONG_INF = 1ll << 63 - 1ll;
const int size = 1e5 + 2;
vector<int> adj[size];
bool vis[size][2];
int col[size];
bool cycle = false;
int p[size][2];
bool dfs(int x, int c) {
  if (adj[x].size() == 0 && c == 1) return true;
  if (col[x] == 1) cycle = true;
  col[x] = 1;
  if (vis[x][c]) return false;
  vis[x][c] = 1;
  bool win = false;
  for (int i = 0; i < (int)adj[x].size(); i++) {
    if (dfs(adj[x][i], 1 - c) && !win) {
      win = true;
      p[x][c] = adj[x][i];
    }
  }
  col[x] = 0;
  return win;
}
int main() {
  int n, m;
  scanf("%d%d", &n, &m);
  for (int i = 1; i <= (int)n; i++) {
    int x;
    scanf("%d", &x);
    for (int j = 0; j < (int)x; j++) {
      int y;
      scanf("%d", &y);
      adj[i].push_back(y);
    };
  }
  int v;
  scanf("%d", &v);
  bool win = dfs(v, 0);
  if (!win) {
    cout << (cycle ? "Draw" : "Lose") << endl;
    return 0;
  }
  cout << "Win" << endl;
  vector<int> ans;
  int x = v;
  int c = 0;
  int cnt = 0;
  while (x) {
    cnt++;
    ans.push_back(x);
    x = p[x][c];
    c = 1 - c;
    if (cnt > 1234567) return 0;
  }
  for (int i = 0; i < (int)ans.size(); i++) {
    printf("%d%c", ans[i], (i == ans.size() - 1 ? '\n' : ' '));
  }
}
