#include <bits/stdc++.h>
using namespace std;
const int N = 1e5 + 5;
vector<int> adj[N], radj[N << 1], ans;
int vis[N], rvis[N << 1], par[N << 1];
bool is_cycle(int v) {
  vis[v] = 1;
  for (auto it : adj[v]) {
    if (vis[it] == 0) {
      if (is_cycle(it)) return true;
    } else if (vis[it] == 1) {
      return true;
    }
  }
  vis[v] = 2;
  return false;
}
int t;
bool can_win(int v) {
  if (adj[v >> 1].empty() && (v & 1)) {
    t = v;
    return true;
  }
  rvis[v] = 1;
  for (auto it : radj[v]) {
    if (rvis[it] == 0) {
      par[it] = v;
      if (can_win(it)) return true;
    }
  }
  return false;
}
int main() {
  ios::sync_with_stdio(0);
  cin.tie(0);
  int n, m;
  cin >> n >> m;
  for (int i = 1; i <= n; i++) {
    int c;
    cin >> c;
    while (c--) {
      int a;
      cin >> a;
      adj[i].push_back(a);
      radj[i << 1].push_back((a << 1) + 1);
      radj[(i << 1) + 1].push_back(a << 1);
    }
  }
  int s;
  cin >> s;
  if (can_win(s << 1)) {
    cout << "Win\n";
    while (t != (s << 1)) {
      ans.push_back(t >> 1);
      t = par[t];
    }
    ans.push_back(s);
    for (auto it = ans.rbegin(); it != ans.rend(); it++) {
      cout << *it << " ";
    }
    cout << "\n";
  } else if (is_cycle(s))
    cout << "Draw\n";
  else
    cout << "Lose\n";
  return 0;
}
