#include <bits/stdc++.h>
using namespace std;
const int N = 100005;
vector<int> gfo[N];
bool vst[N][2];
bool fff;
int vis[N], c;
vector<int> ans;
inline void dfs(int u, bool st) {
  vst[u][st] = true;
  for (int v : gfo[u]) {
    if (!vst[v][st ^ 1]) dfs(v, st ^ 1);
    if (fff) {
      vis[u] = c++;
      ans.push_back(u);
      break;
    }
  }
  if (st && (int)gfo[u].size() == 0) {
    fff = true, vis[u] = c++;
    ans.push_back(u);
  }
}
inline bool cicle(int u) {
  vis[u] = 1;
  bool res = false;
  for (int v : gfo[u]) {
    if (vis[v] == 0) res |= cicle(v);
    if (vis[v] == 1) res = true;
  }
  vis[u] = 2;
  return res;
}
int main() {
  ios_base::sync_with_stdio(0);
  cin.tie(0);
  int n, m, k, k1;
  cin >> n >> m;
  for (int i = int(0); i < int(n); i++) {
    cin >> k;
    for (int j = int(0); j < int(k); j++) {
      cin >> k1;
      gfo[i].push_back(--k1);
    }
  }
  int s;
  cin >> s;
  s--;
  memset(vst, false, sizeof(vst));
  memset(vis, -1, sizeof(vis));
  fff = false;
  c = 0;
  dfs(s, false);
  if (fff) {
    cout << "Win\n";
    for (int i = int((int)ans.size() - 1); i >= int(0); i--)
      cout << ans[i] + 1 << " ";
    cout << endl;
  } else {
    memset(vis, 0, sizeof(vis));
    if (cicle(s))
      cout << "Draw\n";
    else
      cout << "Lose\n";
  }
  return 0;
}
